Come posso risolvere gli errori di un set di modifiche in CloudFormation?
Visualizzo un errore quando provo a importare risorse in uno stack di AWS CloudFormation.
Risoluzione
In base al tipo di errore, completa i passaggi nella sezione correlata per risolvere il problema.
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Errore di output modificato
Le sezioni Output in entrambi i modelli devono essere uguali. Se crei un nuovo stack con un modello di importazione delle risorse che ha output tramite la console CloudFormation, ricevi un errore simile al seguente:
"There was an error creating this change set. As part of the import operation, you cannot modify or add [Outputs]"
L'errore si verifica anche quando tenti di importare una risorsa in uno stack.
Per risolvere il problema, assicurati che la sezione Output del modello CloudFormation più recente corrisponda al modello attualmente utilizzato dallo stack. Se i valori non sono gli stessi, aggiorna il modello più recente in modo che corrisponda ai valori e agli output nella sezione Output del modello corrente.
Importante: l'operazione di importazione non può contenere aggiunte e modifiche ai valori ID logico, Descrizione, Valore, Esportazione o Output.
Al termine dell'operazione di importazione, aggiorna lo stack con le modifiche nella configurazione Output. In alternativa, puoi importare automaticamente le risorse AWS in uno stack di CloudFormation.
Errore di convalida degli attributi dello stack
Se utilizzi AWS CLI o AWS SDK per creare un set di modifiche di tipo IMPORT che contiene attributi di stack modificati o aggiunti, ricevi un errore simile al seguente:
"An error occurred (ValidationError) when calling the CreateChangeSet operation: As part of the import operation, you cannot modify or add [Tags]"
L'errore si verifica quando il set di modifiche di tipo IMPORT include modifiche agli attributi dello stack.
Per risolvere il problema, verifica che gli attributi dello stack inclusi per l'operazione di creazione del set di modifiche corrispondano ai valori correnti degli attributi dello stack.
Importante: non aggiornare o aggiungere nuovi valori di attributo.
Dopo aver importato le risorse, aggiorna gli attributi in un'operazione di aggiornamento separata. In alternativa, puoi importare automaticamente le risorse AWS in uno stack di CloudFormation.
Errore di risorsa modificata
Durante un'operazione di importazione, non puoi creare, aggiornare o eliminare una risorsa. Se modifichi una risorsa esistente durante un'operazione di importazione di risorse, ricevi un errore simile al seguente:
"There was an error creating this change set. You have modified resources [ResourceName] in your template that are not being imported. Update, create or delete operations cannot be executed during import operations."
Per risolvere il problema, crea un set di modifiche di tipo UPDATE anziché un set di modifiche di tipo IMPORT. Viene mostrata l'origine della modifica nella risorsa. Utilizza la stessa specifica Risorse per le risorse esistenti e aggiungi solo le risorse appropriate da importare nel modello. In alternativa, puoi importare automaticamente le risorse AWS in uno stack di CloudFormation.
Errore di elenco delle risorse da importare
Se utilizzi AWS CLI o AWS SDK per creare un set di modifiche di tipo IMPORT, ricevi uno dei seguenti messaggi di errore:
<ResourceName>"An error occurred (ValidationError) when calling the CreateChangeSet operation: Resources [] is missing from ResourceToImport list"
"Error: "An error occurred (ValidationError) when calling the CreateChangeSet operation: Must Provide at least one resource to import""
Per risolvere il problema, verifica di aver passato un ID fisico nella proprietà --resources-to-import del comando AWS CLI. In alternativa, utilizza la proprietà ResourceToImport nell'API CreateChangeSet per le risorse che desideri importare nello stack.
Per importare, devi passare un ID fisico alle nuove risorse. Per risolvere il problema, verifica di aver incluso --resources-to-import nel comando AWS CLI o ResourceToImport nella chiamata API. Inoltre, assicurati di elencare le risorse da importare.
Errore di funzionalità IAM
Se il set di modifiche include risorse IAM per le quali non hai le autorizzazioni, ricevi uno dei seguenti messaggi di errore:
<StackName>"Error: Failed to create changeset for the stack: , ex: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state: For expression "Status" we matched expected path: "FAILED" Status: FAILED. Reason: Requires capabilities: [CAPABILITY_NAMED_IAM]"
"When calling the CreateChangeSet operation: Requires capabilities : [CAPABILITY_IAM/CAPABILITY_NAMED_IAM]"
"Please acknowledge all checkboxes before proceeding."
Per risolvere il problema, completa i seguenti passaggi:
- Apri la console CloudFormation.
- Scegli Crea stack con risorse esistenti o Aggiorna stack.
- Vai alla pagina Revisione, quindi scegli I acknowledge that AWS CloudFormation might create IAM resources/I acknowledge that AWS CloudFormation might create IAM resources with custom names (Accetto che AWS CloudFormation potrebbe creare risorse IAM/Accetto che AWS CloudFormation potrebbe creare risorse IAM con nomi personalizzati).
-oppure-
Utilizza i comandi AWS CLI create-stack e update-stack per specificare il valore CAPABILITY_IAM o CAPABILITY_NAMED_IAM per il parametro --capabilities.
Nota: se il modello CloudFormation include risorse AWS Identity and Access Management (AWS IAM), devi accettare CAPABILITY_IAM. Se il modello include nomi personalizzati per le risorse IAM, devi accettare CAPABILITY_NAMED_IAM. Per ulteriori informazioni, consulta la sezione Funzionalità in Riferimento sull’azione di distribuzione di AWS CloudFormation.
Errore "Submitted information didn't contain changes" durante l'operazione di aggiornamento dello stack
Se utilizzi lo stesso modello di stack durante l'operazione Aggiorna stack, ricevi uno dei seguenti messaggi di errore:
"The submitted information didn't contain changes. Submit different information to create a change set"
"An error occurred (ValidationError) when calling the UpdateStack operation: No updates are to be performed."
Per risolvere il problema, intraprendi le seguenti azioni:
- Verifica di aver apportato modifiche allo stack. CloudFormation non considera le modifiche apportate a Parametri o Descrizione stack come modifiche al modello dello stack.
- Assicurati che le risorse abbiano modifiche sostanziali. Ad esempio, se desideri aggiungere una descrizione allo stack, apporta la modifica la volta successiva che aggiorni altre risorse nello stack.
- Apporta una modifica sostanziale, ad esempio modificando i tag dello stack, per attivare un rilevamento delle modifiche dello stack. Ad esempio, se aggiungi solo una Descrizione al modello, potresti ricevere un errore. Tuttavia, se modifichi anche i tag dello stack quando crei un set di modifiche, l'errore non viene generato.
- Aggiungi Metadati personalizzati a qualsiasi risorsa per attivare una modifica.<br id=hardline_break/>
Esempio di modello:
Nota: sostituisci MyResourceType con il tuo tipo di risorsa e MyResourceProperties con le proprietà della tua risorsa.Description: This description is the cause of the error when only updating this field. Resources: myResource: Type: MyResourceType Properties: MyResourceProperties Metadata: ### ADD THIS CUSTOM METADATA test: 1 ### ANY KEY-VALUE PAIR
Se ancora non riesci ad aggiornare lo stack, contatta il Supporto AWS.
Errore di chiamata API ExecuteChangeSet
Non puoi utilizzare contemporaneamente il parametro OnStackFailure nell'API CreateChangeSet e il parametro DisableRollback nell'API ExecuteChangeSet.
"Either DisableRollback or OnStackFailure can be specified, but not both. Validation error as OnStackFailure parameter was specified during CreateChangeSet."
Per risolvere il problema, assicurati di non utilizzare i due parametri insieme.
Errore di discordanza tra input e formato sulla console per il set di modifiche
Se utilizzi riferimenti dinamici di AWS Secrets Manager con un formato errato nel modello CloudFormation, ricevi uno dei seguenti errori:
"Given input did not match expected format"
"Incorrect format is used in the following SSM reference"
Per risolvere il problema, assicurati di seguire le best practice per i riferimenti dinamici di Secrets Manager. Per ulteriori informazioni, consulta Ottenimento di valori archiviati in altri servizi utilizzando riferimenti dinamici.
Informazioni correlate
Creazione di uno stack da risorse esistenti
- Argomenti
- Management & Governance
- Lingua
- Italiano
