Come faccio a risolvere l'errore "Errore interno" quando provo a creare o aggiornare uno stack in CloudFormation?

5 minuti di lettura
0

Desidero risolvere l'errore "Errore interno" in AWS CloudFormation.

Breve descrizione

Se stai creando o aggiornando il tuo stack CloudFormation, potresti ricevere l'errore "Errore interno" quando un'operazione su una risorsa non riesce. Puoi ricevere questo errore anche se lo stack non viene distribuito.

Un'operazione su una risorsa può avere esito negativo nei seguenti scenari:

  • Le tue risorse o proprietà sono impostate su valori errati. Per risolvere questo problema, completa i passaggi indicati nella sezione Implementare uno stack di test per trovare i valori errati delle risorse o proprietà.
  • Un flusso di lavoro interno non è riuscito. Per risolvere questo problema utilizzando AWS CloudTrail, completa i passaggi indicati nella sezione Trovare le operazioni API non riuscite nei log degli eventi di CloudTrail.

Infine, la distribuzione del tuo stack può non riuscire se passi valori errati alla sezione Output del tuo modello CloudFormation. Per risolvere questo errore, completa i passaggi indicati nella sezione Verificare i valori negli output del tuo modello CloudFormation.

Nota: I passaggi seguenti si applicano solo agli errori "Errore interno" che ricevi quando provi a creare o aggiornare uno stack in CloudFormation.

Risoluzione

Implementare uno stack di test per trovare i valori errati delle risorse o proprietà

Per trovare i valori errati delle proprietà o gli attributi delle risorse, implementa uno stack di test con un modello CloudFormation che includa solo la risorsa non riuscita.

Se lo stack di test viene distribuito correttamente, segui i passaggi indicati nella sezione Trovare le operazioni API non riuscite nei log degli eventi di CloudTrail.

Se la distribuzione dello stack di test non riesce, continua a rimuovere proprietà e attributi non richiesti dallo stack di test finché non trovi i valori errati.

Nel seguente scenario di esempio, viene restituito un errore "Errore interno" nel momento in cui CloudFormation tenta di creare una risorsa AWS::Config::ConformancePack con AWS Config. L'errore viene visualizzato perché la proprietà DeliveryS3bucket utilizza una sintassi errata. La proprietà Deliverys3bucket accetta solo il nome del bucket come valore (ad esempio: bucketname). Un percorso di file che include il nome del bucket non è un valore accettabile (ad esempio: s3://bucketname).

AWSTemplateFormatVersion: 2010-09-09
Resources:
  CloudFormationCanaryPack:
    Type: AWS::Config::ConformancePack
    Properties:
      ConformancePackName: ConformancePackName
      DeliveryS3Bucket: s3://bucketname            # Incorrect value for DeliveryS3Bucket
      TemplateS3Uri: s3://bucketname/prefix

Trovare le operazioni API non riuscite nei log degli eventi di CloudTrail

1.    Apri la console CloudTrail.

2.    Nel riquadro di navigazione, scegli Cronologia degli eventi.

3.    In Intervallo di tempo, inserisci un intervallo di tempo per isolare la chiamata API non riuscita, quindi scegli Applica.

Suggerimento: Nel campo Da dell'intervallo di tempo, inserisci l'ora in cui la risorsa è entrata nello stato CREATE_IN_PROGRESS o UPDATE_IN_PROGRESS nello stack CloudFormation. Nel campo A dell'intervallo di tempo, inserisci l'ora in cui la chiamata API ha dato esito negativo.

4.    Per eseguire una ricerca oltre la visualizzazione predefinita degli eventi inCronologia degli eventi, utilizza i filtri degli attributi.

Nota: Per impostazione predefinita, la Cronologia degli eventi utilizza un filtro di sola lettura impostato su false. Il risultato del filtro di sola lettura mostra solo gli eventi di scrittura per l'attività dell'API, mentre esclude quelli di sola lettura dall'elenco degli eventi visualizzati.

È possibile utilizzare EventName per filtrare in base al nome dell'evento restituito. Se conosci l'azione API utilizzata per creare o aggiornare una risorsa, puoi utilizzare un filtro EventName solo per chiamate API specifiche. Ad esempio, lo stack CloudFormation utilizza l'azione API AWS Config PutConformancePack quando crea una risorsa AWS::Config::ConformancePack. Ciò significa che puoi filtrare solo per l'API PutConformancePack. Puoi utilizzare EventSource per filtrare in base al servizio AWS che ha effettuato la richiesta API. Ciò significa che puoi consultare un elenco di fonti di eventi e scegliere la risorsa appropriata da utilizzare nel tuo modello CloudFormation.

5.    Per identificare la causa principale dell'errore, rivedi il messaggio di errore relativo all'evento restituito.

Nota: Alcuni errori di funzionamento delle API richiedono l'aggiornamento del modello CloudFormation originale e quindi l'esecuzione di una distribuzione di prova per confermare che l'errore è stato risolto.

Controlla i valori nella sezione Output del tuo modello CloudFormation

Nel tuo modello CloudFormation, verifica che i valori nella sezione Output non contengano errori di sintassi. Ad esempio, rimuovi gli spazi finali.

Se recuperi gli attributi delle risorse con riferimenti dinamici, devi assicurarti che gli attributi siano disponibili durante la distribuzione dello stack. Per simulare questa operazione all'esterno di CloudFormation, procedi in questo modo:

1.    Effettua una chiamata API Create* o Update* al tipo di risorsa con l'attributo fallito (per la creazione o la modifica).

2.    Effettua una chiamata API Describe* per recuperare gli attributi correnti della risorsa durante il processo di creazione o aggiornamento dello stack.

Lo scenario di esempio seguente mostra un errore interno restituito da uno stack quando l'attributo ReplicationInstancePrivateIPAddresses della risorsa AWS::DMS::ReplicationInstance passa a Output.

Nell'esempio seguente, l'attributo IP privato dell'istanza sarà disponibile solo dopo che la risorsa ReplicationInstance sarà passata allo stato in disponibile. Se la risorsa ReplicationInstance non è nello stato disponibile nel momento in cui lo stack elabora gli output, CloudFormation non potrà recuperare l'attributo IP privato. Quindi, la distribuzione darà esito negativo.

AWSTemplateFormatVersion: 2010-09-09
Resources:
  BasicReplicationInstance:
    Type: AWS::DMS::ReplicationInstance
    Properties:
      ReplicationInstanceClass: dms.t2.small
Outputs:
  DmsInstanceIP:
    Value: !GetAtt BasicReplicationInstance.ReplicationInstancePrivateIpAddresses

Informazioni correlate

Risolvere i problemi relativi ad AWS Cloud

Visualizzare gli eventi con la Cronologia degli eventi di CloudTrail

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa