Come posso risolvere l'errore "L’esportazione EXPORT_NAME non può essere aggiornata poiché è utilizzata da STACK_NAME" in AWS CloudFormation?
Ho provato ad aggiornare o eliminare il mio stack AWS CloudFormation, ma ho ricevuto un errore simile al seguente: "L’esportazione Export_NAME non può essere aggiornata poiché è utilizzata da STACK_NAME."
Breve descrizione
Questo errore viene visualizzato quando uno o più stack importano un valore di output esportato dallo stack che vuoi aggiornare o eliminare. Non puoi aggiornare o eliminare il tuo stack quando altri stack stanno importando valori da tale stack.
Per risolvere questo errore, completa i seguenti passaggi:
- Trova gli stack che stanno importando il valore di output esportato.
- Per gli stack che identifichi come importatori del valore esportato, aggiorna il modello di stack per sostituire le istruzioni Import con il valore di output effettivo.
- Aggiorna lo stack di importazione utilizzando il modello modificato.
Soluzione
Nota: Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia AWS CLI.
Trova gli stack che stanno importando il valore di output esportato
Per vedere quali stack fanno riferimento al valore di output esportato, utilizza l’interfaccia AWS CLI, Strumenti AWS per PowerShell o la console AWS CloudFormation.
AWS CLI:
1. Per elencare tutti i valori di output esportati, esegui il seguente comando:
aws cloudformation list-exports
2. Per elencare tutti gli stack che stanno importando un valore di output esportato, esegui il comando seguente:
aws cloudformation list-imports --export-name EXPORT_NAME
Nota: Sostituisci EXPORT_NAME con il nome del valore di output esportato.
Strumenti AWS per PowerShell:
1. Per elencare tutti i valori di output esportati, esegui il seguente comando:
Get-CFNExport
2. Per elencare tutti gli stack che stanno importando un valore di output esportato, esegui il comando seguente:
Get-CFNImportList -ExportName EXPORT_NAME
Nota: Sostituisci EXPORT_NAME con il nome del valore di output esportato.
Console AWS CloudFormation:
1. Apri la console AWS CloudFormation.
2. Dal menu CloudFormation, scegli Esportazioni.
3. Come Nome di esportazione, scegli il nome del valore di output esportato dal tuo stack.
4. Per Importazioni, scegli gli stack che stanno importando il valore di output esportato dal tuo stack.
Aggiorna il modello di stack per sostituire le istruzioni Import con il valore di output effettivo
1. Nel tuo modello AWS CloudFormation, sostituisci le funzioni intrinseche con i valori importati per ogni stack che fa riferimento al valore di output esportato del tuo stack.
Ad esempio, le funzioni intrinseche Fn::ImportValue e !ImportValue sono entrambe sostituite dal valore importato arn:aws:s3:::sample nei seguenti modelli JSON e YAML.
Modello JSON con funzione intrinseca:
{ "Parameters": { "parameterName": { "Type": "String" } }, "Resources": { "testParameter": { "Type": "AWS::SSM::Parameter", "Properties": { "Description": "Test SSM Parameter", "Name": { "Ref": "parameterName" }, "Type": "String", "Value": { "Fn::ImportValue": "sample-s3-bucket:Bucket-arn" } } } } }
Modello JSON con valore importato:
{ "Parameters": { "parameterName": { "Type": "String" } }, "Resources": { "testParameter": { "Type": "AWS::SSM::Parameter", "Properties": { "Description": "Test SSM Parameter", "Name": { "Ref": "parameterName" }, "Type": "String", "Value": "arn:aws:s3:::sample" } } } }
Modello YAML con funzione intrinseca:
Parameters: parameterName: Type: String Resources: testParameter: Type: AWS::SSM::Parameter Properties: Description: Test SSM Parameter Name: !Ref parameterName Type: String Value: !ImportValue sample-s3-bucket:Bucket-arn
Modello YAML con valore importato:
Parameters: parameterName: Type: String Resources: testParameter: Type: AWS::SSM::Parameter Properties: Description: Test SSM Parameter Name: !Ref parameterName Type: String Value: arn:aws:s3:::sample
2. Aggiorna o elimina il tuo stack.
Ora che le importazioni sono dissociate, puoi aggiornare o eliminare lo stack che ha esportato i valori.
Informazioni correlate
Elenco degli stack che importano un valore di output esportato
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa