Risoluzione dei problemi CloudFormation - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi CloudFormation

Quando lo usi AWS CloudFormation, potresti riscontrare problemi durante la creazione, l'aggiornamento o l'eliminazione degli stack. CloudFormation Le sezioni seguenti sono utili per risolvere alcuni dei problemi più comuni che possono verificarsi.

Per domande generali sull'argomento CloudFormation, consulta le domande AWS CloudFormation frequenti. Puoi anche cercare risposte e pubblicare domande nei forum di AWS CloudFormation.

Guida alla risoluzione dei problemi

Se AWS CloudFormation non riesci a creare, aggiornare o eliminare lo stack, puoi visualizzare i messaggi di errore o i log per aiutarti a saperne di più sul problema. Le seguenti attività descrivono i metodi generali per la risoluzione di un CloudFormation problema. Per informazioni su errori e soluzioni specifici, consulta la sezione Risoluzione degli errori.

  • Usa la CloudFormation console per visualizzare lo stato del tuo stack. Nella console, puoi visualizzare un elenco degli eventi di stack, mentre lo stack viene creato, aggiornato o eliminato. In questo elenco, trova l'evento relativo al problema e quindi visualizzane il motivo dello stato. Il motivo dello stato potrebbe contenere un messaggio di errore da AWS CloudFormation o proveniente da un particolare servizio che può aiutarti a risolvere il problema. Per ulteriori informazioni sulla visualizzazione degli eventi dello stack, consulta Visualizzazione dei dati e delle risorse AWS CloudFormation dello stack su AWS Management Console.

  • Per i problemi relativi a Amazon EC2, visualizza i log cloud-init e cfn. Questi log sono pubblicati nell'istanza Amazon EC2, nella directory /var/log/. Questi registri acquisiscono i processi e gli output dei comandi durante la AWS CloudFormation configurazione dell'istanza. Per Windows, visualizza il servizio EC2Configure in %ProgramFiles%\Amazon\EC2ConfigService, EC2 Launch in %ProgramData%\Amazon\EC2-Windows\Launch\Logs, EC2 Launch v2 in %ProgramData%\Amazon\EC2Launch\log e log cfn in C:\cfn\log.

    Puoi anche configurare il AWS CloudFormation modello in modo che i log vengano pubblicati su Amazon CloudWatch, che visualizza i log in AWS Management Console modo da non doverti connettere alla tua istanza Amazon EC2. Per ulteriori informazioni, consulta Visualizza CloudFormation i log nella console nel blog sulla gestione delle applicazioni.

Risoluzione degli errori

Quando riscontri i seguenti errori AWS CloudFormation nello stack, puoi utilizzare le seguenti soluzioni per aiutarti a trovare l'origine dei problemi e risolverli.

Impossibile eliminare lo stack

Per risolvere questa situazione, prova quanto segue:

  • Alcune risorse devono essere vuote prima di poter essere eliminate. Ad esempio, devi eliminare tutti gli oggetti in un bucket Amazon S3 o rimuovere tutte le istanze in un gruppo di sicurezza Amazon EC2 prima di poter eliminare il bucket o il gruppo di sicurezza.

  • Verifica di disporre delle necessarie autorizzazioni IAM per eliminare le risorse nello stack. Oltre alle AWS CloudFormation autorizzazioni, devi avere il permesso di utilizzare i servizi sottostanti, come Amazon S3 o Amazon EC2.

  • Se lo stato degli stack è impostato perché AWS CloudFormation non è DELETE_FAILED stato possibile eliminare una risorsa, esegui nuovamente l'eliminazione con il RetainResourcesparametro e specifica la risorsa che non può essere eliminata. AWS CloudFormation AWS CloudFormation elimina lo stack senza eliminare la risorsa conservata. La conservazione delle risorse è utile quando non puoi eliminare una risorsa, ad esempio un bucket S3 che contiene oggetti da conservare, ma vuoi comunque eliminare lo stack.

    Dopo aver eliminato lo stack, è possibile eliminare manualmente le risorse conservate utilizzando il servizio associato. AWS

    In alternativa, puoi prendere in considerazione l'utilizzo dell'FORCE_DELETE_STACKopzione con il DeletionMode parametro. Per ulteriori informazioni sull'eliminazione forzata di una pila, consulta. DeleteStack

  • Non è possibile eliminare stack per cui è abilitata la protezione da cessazione. Se tenti di eliminare uno stack con protezione da cessazione abilitata, l'eliminazione ha esito negativo e lo stack, incluso lo stato, rimane invariato. Disabilita la protezione da cessazione sullo stack, quindi esegui nuovamente l'operazione di eliminazione.

    Questo vale anche per gli stack nidificati i cui stack radice abbiano abilitata la protezione da cessazione. Disattiva la protezione da cessazione sullo stack radice, quindi esegui nuovamente l'operazione di eliminazione. È consigliabile non eliminare gli stack nidificati direttamente, ma solo nell'ambito dell'eliminazione dello stack radice e di tutte le relative risorse.

    Per ulteriori informazioni, consulta Protezione di uno stack dall'eliminazione.

  • Per tutti gli altri problemi, se ne hai AWS Support, puoi creare un AWS Support caso. Per informazioni, consulta Contattare il supporto.

Errore di dipendenza

Per risolvere un errore di dipendenza, aggiungi un attributo DependsOn alle risorse che dipendono da altre risorse nel modello. In alcuni casi, è necessario dichiarare esplicitamente le dipendenze in modo da AWS CloudFormation poter creare o eliminare risorse nell'ordine corretto. Ad esempio, se crei un IP elastico e un VPC con un gateway Internet nello stesso stack, l'IP elastico deve dipendere dal collegamento del gateway Internet. Per ulteriori informazioni, consulta Attributo DependsOn.

Errore del parametro di analisi durante il passaggio di un elenco

Quando usate AWS Command Line Interface o AWS CloudFormation per passare una lista, aggiungete il carattere escape (\) prima di ogni virgola. L'esempio seguente mostra come specificare un parametro di input nella AWS CLI.

ParameterKey=CIDR,ParameterValue='10.10.0.0/16\,10.10.0.0/24\,10.10.1.0/24'

Autorizzazioni IAM insufficienti

Quando lavori con uno AWS CloudFormation stack, non solo hai bisogno delle autorizzazioni per utilizzarlo AWS CloudFormation, ma devi anche avere l'autorizzazione per utilizzare i servizi sottostanti descritti nel tuo modello. Ad esempio, se crei un bucket Amazon S3 o avvii un'istanza Amazon EC2, sono necessarie le autorizzazioni per Amazon S3 o Amazon EC2. Rivedi la tua policy IAM e verifica di disporre delle autorizzazioni necessarie prima di lavorare con gli stack. AWS CloudFormation Per ulteriori informazioni, consulta Controllo dell'accesso con AWS Identity and Access Management.

Valore non valido o proprietà della risorsa non supportata

Quando crei o aggiorni uno AWS CloudFormation stack, lo stack può fallire a causa di parametri di input non validi, nomi di proprietà delle risorse non supportati o valori di proprietà delle risorse non supportati. Per i parametri di input, verifica che la risorsa esista. Ad esempio, se specifichi una coppia di chiavi Amazon EC2 o un ID VPC, la risorsa deve esistere nel tuo account e nella Regione in cui stai creando o aggiornando lo stack. Per assicurarti di utilizzare valori validi, puoi scegliere tipi di parametri specifici di AWS.

Per i nomi e i valori di proprietà delle risorse, aggiorna il modello per l'utilizzo di nomi e valori validi. Per un elenco di tutte le risorse e dei relativi nomi di proprietà, consulta AWS riferimento ai tipi di risorse e proprietà.

Quota superata

Verifica di non aver raggiunto la quota per una risorsa. Ad esempio, il numero massimo predefinito di istanze on demand Amazon EC2 che è possibile avviare è 5. Se tenti di creare più istanze on demand Amazon EC2 di quante ne siano consentite dal tuo account, la creazione dell'istanza ha esito negativo e ricevi l'errore Status=start_failed. Per visualizzare le quote AWS predefinite per servizio, consulta Quote di servizio di AWS in Riferimenti generali di AWS.

Per le AWS CloudFormation quote e le strategie di modifica, consulta. Comprendi le CloudFormation quote

Inoltre, durante un aggiornamento, se una risorsa viene sostituita, AWS CloudFormation crea una nuova risorsa prima di eliminare quella precedente. Questa sostituzione potrebbe causare lo sconfinamento dell'account rispetto alle quote delle risorse, con conseguente errore nell'aggiornamento. Puoi eliminare le risorse in eccesso o richiedere un aumento delle quote.

Stack nidificati bloccati in UPDATE_COMPLETE_CLEANUP_IN_PROGRESS, UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS o UPDATE_ROLLBACK_IN_PROGRESS

Uno stack nidificato non è stato in grado di eseguire il rollback. A causa delle potenziali dipendenze tra le risorse degli stack nidificati, AWS CloudFormation non inizia a ripulire le risorse dello stack nidificato finché tutti gli stack nidificati non sono stati aggiornati o non sono stati ripristinati. Quando uno stack nidificato non riesce a eseguire il rollback, AWS CloudFormation annulla tutte le operazioni, indipendentemente dallo stato in cui si trovano gli altri stack nidificati. Uno stack nidificato che ha completato l'aggiornamento o il rollback ma non ha ricevuto alcun segnale di avvio della pulizia perché un altro nidificato non è riuscito a ripristinarlo si trova in uno stato or. AWS CloudFormation UPDATE_COMPLETE_CLEANUP_IN_PROGRESS UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS Uno stack nidificato che non ha potuto completare l'aggiornamento, ma che non ha ricevuto un segnale per avviare il rollback, si trova in uno stato UPDATE_ROLLBACK_IN_PROGRESS.

Il rollback di uno stack nidificato potrebbe non riuscire a causa di modifiche apportate all'esterno di AWS CloudFormation, quando il modello dello stack non riflette accuratamente lo stato dello stack. Uno stack nidificato può non riuscire anche se un gruppo con dimensionamento automatico in uno stack nidificato aveva un periodo di timeout del segnale per le risorse insufficiente quando il gruppo è stato creato o aggiornato.

Per risolvere il problema con lo stack, contatta AWS Support.

Nessun aggiornamento da eseguire

Per aggiornare uno AWS CloudFormation stack, è necessario inviare le modifiche ai valori del modello o dei parametri a. AWS CloudFormation Tuttavia, AWS CloudFormation non riconoscerà alcune modifiche al modello come aggiornamento, ad esempio le modifiche a una politica di eliminazione, una politica di aggiornamento, una dichiarazione di condizione o una dichiarazione di output. Se devi effettuare tali modifiche senza toccare altro, puoi aggiungere o modificare un attributo di metadati per qualsiasi risorsa.

Per ulteriori informazioni sulla modifica dei modelli durante un aggiornamento, consulta Modifica di un modello di stack.

Impossibile stabilizzare una risorsa durante un'operazione di creazione, aggiornamento o eliminazione dello stack

Una risorsa non ha risposto perché l'operazione ha superato il periodo di AWS CloudFormation timeout o un AWS servizio è stato interrotto. In caso di interruzioni del servizio, verifica che il AWS servizio in questione sia in esecuzione, quindi riprova a eseguire l'operazione stack.

Se i AWS servizi sono stati eseguiti correttamente, controlla se lo stack contiene una delle seguenti risorse:

  • AWS::AutoScaling::AutoScalingGroup per operazioni di creazione, aggiornamento ed eliminazione

  • AWS::CertificateManager::Certificate per operazioni di creazione

  • AWS::CloudFormation::Stack per operazioni di creazione, aggiornamento ed eliminazione

  • AWS::ElasticSearch::Domain per operazioni di aggiornamento

  • AWS::RDS::DBCluster per operazioni di creazione e aggiornamento

  • AWS::RDS::DBInstance per operazioni di creazione, aggiornamento ed eliminazione

  • AWS::Redshift::Cluster per operazioni di aggiornamento

Le operazioni per queste risorse potrebbero richiedere più tempo del periodo di timeout predefinito. Il periodo di timeout dipende dalla risorsa e dalle credenziali utilizzate. Per estendere il periodo di timeout, specifica un ruolo di servizio quando esegui l'operazione sullo stack. Se utilizzi già un ruolo di servizio, oppure se il tuo stack contiene una risorsa non in elenco, contatta AWS Support.

Se il tuo stack è nello stato UPDATE_ROLLBACK_FAILED, consulta Impossibile eseguire il rollback dell'aggiornamento.

Gruppo di sicurezza non esistente in VPC

Verifica che il gruppo di sicurezza esista nel VPC specificato. Se il gruppo di sicurezza esiste, assicurati di specificarne l'ID e non il nome. Ad esempio, la risorsa AWS::EC2::SecurityGroupIngress ha le proprietà SourceSecurityGroupName e SourceSecurityGroupId. Per i gruppi di sicurezza VPC, devi utilizzare la proprietà SourceSecurityGroupId e specificare l'ID del gruppo di sicurezza.

Impossibile eseguire il rollback dell'aggiornamento

Una risorsa dipendente non può tornare al suo stato originale, provocando il mancato completamento del rollback (stato UPDATE_ROLLBACK_FAILED). Ad esempio, è possibile che uno stack stia eseguendo il rollback a una vecchia istanza database che è stata eliminata al di fuori di AWS CloudFormation. Poiché AWS CloudFormation non sa che il database è stato eliminato, presume che l'istanza del database esista ancora e tenta di ripristinarla, causando il fallimento del rollback dell'aggiornamento.

A seconda del problema, è possibile correggere manualmente gli errori e continuare il rollback. Per continuare il rollback, puoi riportare lo stack allo stato di funzionamento UPDATE_ROLLBACK_COMPLETE e quindi provare nuovamente ad aggiornare lo stack. L'elenco seguente descrive le soluzioni a problemi comuni che provocano errori nel rollback dell'aggiornamento:

  • Impossibile ricevere il numero richiesto di segnali

    Utilizza il comando signal-resource per inviare manualmente il numero richiesto di segnali di riuscita alla risorsa in attesa, quindi continua con il rollback dell'aggiornamento. Ad esempio, durante il rollback di un aggiornamento, le istanze in un gruppo con dimensionamento automatico potrebbe non riuscire a segnalare la riuscita entro il timeout specificato. Invia manualmente i segnali di successo al gruppo con dimensionamento automatico. Quando continui il rollback dell'aggiornamento, AWS CloudFormation vede i tuoi segnali e procede con il rollback.

  • Le modifiche a una risorsa sono state apportate al di fuori di AWS CloudFormation

    Sincronizza manualmente le risorse in modo che corrispondano al modello originale dello stack, quindi continua con il rollback dell'aggiornamento. Ad esempio, se hai eliminato manualmente una risorsa a cui AWS CloudFormation stai tentando di eseguire il rollback, devi creare manualmente quella risorsa con lo stesso nome e le stesse proprietà che aveva nello stack originale.

  • Autorizzazioni insufficienti

    Verifica di disporre delle autorizzazioni IAM sufficienti per modificare le risorse, quindi continua con il rollback dell'aggiornamento. Ad esempio, la tua policy IAM potrebbe consentirti di creare un bucket S3, ma non di modificarlo. Aggiungi le operazioni di modifica alla tua policy.

  • Token di sicurezza non valido

    AWS CloudFormation richiede un nuovo set di credenziali. Non sono richieste modifiche. Continua con il rollback dell'aggiornamento per aggiornare le credenziali.

  • Errore relativo ai limiti

    Elimina le risorse che non ti servono o richiedi un aumento delle quote, quindi continua con il rollback dell'aggiornamento. Ad esempio, se la quota di istanze on demand EC2 per il tuo account è pari a 5 e il rollback dell'aggiornamento supera tale quota, non verrà eseguito.

  • La risorsa non si è stabilizzata

    Una risorsa non ha risposto perché l'operazione potrebbe aver superato il periodo di AWS CloudFormation timeout o un AWS servizio potrebbe essere stato interrotto. Non sono richieste modifiche. Una volta completato il funzionamento delle risorse o dopo che il AWS servizio è tornato operativo, continua a ripristinare l'aggiornamento.

Per continuare a ripristinare un aggiornamento, puoi utilizzare la AWS CloudFormation console o l'interfaccia a riga di AWS comando (AWS CLI). Per ulteriori informazioni, consulta Rollback di un aggiornamento.

Se nessuna di queste soluzioni funziona, puoi saltare le risorse che non AWS CloudFormation possono essere ripristinate correttamente. Per ulteriori informazioni, consulta il ResourcesToSkip parametro per il funzionamento dell'ContinueUpdateRollbackAPI nell'AWS CloudFormation API Reference. AWS CloudFormation imposta lo stato delle risorse specificate su UPDATE_COMPLETE e continua a ripristinare lo stack. Dopo aver completato il rollback, lo stato delle risorse saltate saranno incoerenti con lo stato delle risorse nel modello di stack. Prima di eseguire un altro aggiornamento dello stack, devi modificare le risorse o aggiornare lo stack in modo che siano coerenti. Altrimenti, i successivi aggiornamenti dello stack potrebbero fallire e rendere lo stack irrecuperabile.

Condizione di attesa con numero richiesto di segnali non ricevuto da un'istanza Amazon EC2

Per risolvere questa situazione, prova quanto segue:

  • Assicurati che l'AMI che stai utilizzando abbia gli script di AWS CloudFormation supporto installati. Se l'AMI non include gli script helper, puoi anche scaricarli sulla tua istanza. Per ulteriori informazioni, consulta CloudFormation riferimento agli script di supporto.

  • Verifica che il comando cfn-signal sia stato eseguito sull'istanza. Per aiutarti con il debug dell'avvio dell'istanza, puoi avvalerti dei log, ad esempio /var/log/cloud-init.log o /var/log/cfn-init.log. Puoi recuperare i log accedendo alla tua istanza, ma devi disabilitare il rollback in caso di errore oppure AWS CloudFormation elimina l'istanza dopo che lo stack non è riuscito a creare. Puoi anche pubblicare i log su Amazon CloudWatch. Per Windows, puoi visualizzare i log cfn in C:\cfn\log e i log del servizio EC2Config in %ProgramFiles%\Amazon\EC2ConfigService.

  • Verifica che l'istanza disponga di una connessione a Internet. Se è in un VPC, l'istanza deve essere in grado di connettersi a Internet attraverso un dispositivo NAT, se si trova in una sottorete privata, o attraverso un gateway Internet, se è in una sottorete pubblica. Per testare la connessione a Internet dell'istanza, cerca di accedere a una pagina Web pubblica, ad esempio http://aws.amazon.com. Ad esempio, puoi eseguire il comando seguente sull'istanza. Dovrebbe restituire un codice di stato HTTP 200.

    curl -I https://aws.amazon.com

    Per ulteriori informazioni sulla configurazione di un dispositivo NAT, consulta NAT nella Guida per l'utente di Amazon VPC.

Risorsa rimossa dallo stack ma non eliminata.

Durante un aggiornamento dello stack, CloudFormation ha rimosso una risorsa da uno stack ma non ha eliminato la risorsa. La risorsa esiste ancora, ma non è più accessibile tramite. CloudFormation Ciò può verificarsi durante gli aggiornamenti dello stack in cui:

  • CloudFormation deve sostituire una risorsa esistente, quindi crea prima una nuova risorsa, quindi tenta di eliminare la vecchia risorsa.

  • Hai rimosso la risorsa dal modello dello stack, quindi CloudFormation tenta di eliminare la risorsa dallo stack.

Tuttavia, potrebbero esserci casi in cui non è CloudFormation possibile eliminare la risorsa. Ad esempio, se l'utente non dispone delle autorizzazioni per eliminare una risorsa di un determinato tipo.

CloudFormation tenta di eliminare la vecchia risorsa tre volte. Se non CloudFormation riesce a eliminare la vecchia risorsa, rimuove la vecchia risorsa dallo stack e continua ad aggiornare lo stack. Quando l'aggiornamento dello stack è completo, CloudFormation genera un evento UPDATE_COMPLETE stack, ma include un evento StatusReason che indica che una o più risorse non possono essere eliminate. CloudFormation emette anche un DELETE_FAILED evento per la risorsa specifica, con un corrispondente che StatusReason fornisce maggiori dettagli sul motivo per cui CloudFormation non è riuscita a eliminare la risorsa.

Per risolvere questo problema, eliminare la risorsa direttamente utilizzando la console o l'API per il servizio sottostante.

Contattare il supporto

In caso AWS Support affermativo, è possibile creare una richiesta di supporto tecnico all'indirizzo https://console.aws.amazon.com/support/home#/. Prima di contattare il supporto, raccogli queste informazioni:

  • L'ID dello stack. Puoi trovare l'ID dello stack nella scheda Overview (Panoramica) della console AWS CloudFormation. Per ulteriori informazioni, consulta Visualizzazione dei dati e delle risorse AWS CloudFormation dello stack su AWS Management Console.

    Importante

    Non apportare modifiche allo stack al di fuori di AWS CloudFormation. Apportare modifiche allo stack all'esterno AWS CloudFormation potrebbe mettere lo stack in uno stato irrecuperabile.

  • Eventuali messaggi di errore dello stack. Per informazioni sulla visualizzazione dei messaggi di errore dello stack, consulta la sezione Guida alla risoluzione dei problemi.

  • Per i problemi relativi a Amazon EC2, raccogli i log cloud-init e cfn. Questi log sono pubblicati nell'istanza Amazon EC2, nella directory /var/log/. Questi log acquisiscono gli output di processi e comandi mentre l'istanza viene configurata. Per Windows, raccogli i log del servizio EC2Configure e di cfn in %ProgramFiles%\Amazon\EC2ConfigService e C:\cfn\log.

Puoi anche cercare risposte e pubblicare domande nei forum di AWS CloudFormation.