Come posso risolvere i problemi relativi allo stack CloudFormation nel mio progetto AWS Amplify?

Ultimo aggiornamento: 05/04/2022

Quando provo a distribuire la mia applicazione AWS Amplify, ricevo un errore AWS CloudFormation simile al seguente: "Resource is not in the state stackUpdateComplete" (La risorsa non è nello stato StackUpdateComplete). In che modo posso risolvere il problema?

Breve descrizione

Per risolvere i problemi dello stack CloudFormation nel tuo progetto Amplify, identifica innanzitutto la causa del problema esaminando quanto segue nella console di CloudFormation:

  • Lo Status code (Codice di stato) e lo Status reason (Motivo dello stato) dello stack di back-end.
  • I valori di Status (Stato), Status reason (Motivo dello stato) e Logical ID (ID logico) di Events (Eventi) recenti dello stack di back-end.
  • I valori di Status (Stato), Status reason (Motivo dello stato) e Logical ID (ID logico) di Resources (Risorse) dello stack di back-end.

Nota: il valore di Status reason (Motivo dello stato) contiene un messaggio di errore restituito da CloudFormation che identifica la causa dell'errore.

Quindi, risolvi il problema in base ai valori di Status (Stato), Status reason (Motivo dello stato) e Logical ID (ID logico) elencati nella console.

Risoluzione

Nota: gli stack CloudFormation che Amplify aggiorna o di cui effettua il provisioning possono restituire errori per molte ragioni. Di seguito sono riportati i motivi più comuni per cui gli stack CloudFormation restituiscono errori associati ai progetti Amplify:

Identifica la causa del problema esaminando i codici di stato e i motivi di stato dello stack nella console di CloudFormation

1.    Apri la console Amplify.

2.    Scegli la scheda Backend environments (Ambienti di back-end). Successivamente scegli l'ambiente di back-end della tua applicazione.

3.    Scegli la scheda Overview (Panoramica). Quindi, scegli View in CloudFormation (Visualizza in CloudFormation). La pagina Stack info (Informazioni sullo Stack) dello stack CloudFormation associato all'ambiente di back-end si apre nella console di CloudFormation.

4.    In Overview pane (Riquadro Panoramica), esamina i valori di Status (Stato) e Status reason (Motivo dello stato). Questo è il codice di stato Status reason (Motivo dello stato) dello stack di back-end.

Nota: se lo stack principale del progetto è nello stato UPDATE_ROLLBACK_FAILED, segui le istruzioni in questo articolo: How can I get my CloudFormation stack to update if it's stuck in the UPDATE_ROLLBACK_FAILED state?

5.    Scegli la scheda Events (Eventi). Esamina i valori di Status (Stato), Status reason (Motivo dello stato) e Logical ID (ID logico) di tutti gli eventi recenti che si trovano in uno stato di errore.

Nota: assicurati di identificare tutti gli eventi con lo stato UPDATE_FAILED.

6.    Scegli la scheda Resources (Risorse). Esamina i valori di Status (Stato), Status reason (Motivo dello stato) e Logical ID (ID logico) di tutte le risorse che si trovano in uno stato di errore.

7.    (Solo per stack nidificati) Nel riquadro Resources (Risorse), cerca le risorse di tipo AWS::CloudFormation::Stack. Quindi, esamina i valori di Status reason (Motivo dello stato) degli stack nidificati che si trovano in uno stato di errore.

Importante: durante la risoluzione dei problemi, ignora le risorse che hanno avuto esito negativo con lo stato Resource update cancelled (Aggiornamento risorse annullato). Questo stato indica una risorsa dipendente a valle che non ha avuto esito negativo, ma che non è stata aggiornata a causa di un errore di un'altra risorsa.

Risolvi il problema in base ai valori di Status (Stato), Status reason (Motivo dello stato) e Logical ID (ID logico) elencati nella console

Segui le istruzioni nel documento Amplify CLI Troubleshooting guide. Per ulteriori informazioni, puoi anche cercare Status reasons (Motivi di stato) specifici nella pagina Amplify CLI Issues in GitHub.

Nota: è consigliabile testare prima le soluzioni in un ambiente di non produzione.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?