Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Come posso risolvere l'errore "Questo modello non include alcuna risorsa da importare" in AWS CloudFormation?
Desidero risolvere il seguente errore nella console AWS CloudFormation: "Questo modello non include alcuna risorsa da importare. Scopri di più."
Breve descrizione
Visualizzi questo errore quando utilizzi la console di CloudFormation per importare risorse in uno stack esistente creato all'esterno di CloudFormation.
Questo errore può verificarsi quando si utilizza la console CloudFormation nei seguenti scenari:
- La risorsa che stai importando ha una chiave di condizione associata a una condizione che è valutata come false.
- Quando importi una risorsa, utilizzi la funzione intrinseca Fn::Transform o la sezione del modello di trasformazione, come AWS::Serverless o AWS::Include.
Per risolvere l'errore relativo alle risorse condizionali, la condizione specificata nella chiave di condizione deve risultare vera per la risorsa che si sta importando.
Puoi utilizzare l'interfaccia della linea di comando AWS (AWS CLI) anziché la console AWS CloudFormation per risolvere questo errore per i modelli che utilizzano.
L'interfaccia della linea di comando AWS richiede di fornire esplicitamente risorse importate utilizzando il comando CloudFormation, create-change-set.
Nota: se visualizzi dei messaggi di errore quando esegui i comandi dell'interfaccia della linea di comando AWS, consulta la sezione Risolvere gli errori AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Risoluzione
Nell'esempio seguente, AWS CLI viene utilizzata per importare una risorsa AWS::ECS::Cluster esistente in uno stack CloudFormation:
Resources: ... ECSCluster2: Condition: MyCondition Type: AWS::ECS::Cluster DeletionPolicy: Retain Properties: ClusterName: Cluster2
Nota: Prima di procedere con i passaggi successivi, assicurati che la condizione MyCondition sia vera.
Importa risorse
Nota: Se il tuo stack non è nella tua regione AWS predefinita, aggiungi**--region ** ai comandi. Oppure, imposta ed esporta la variabile di ambiente AWS_DEFAULT_REGION per modificare la regione predefinita.
Per importare le risorse, completa i seguenti passaggi:
-
Crea un file di importazione delle risorse denominato import.txt:
[ { "ResourceType": "AWS::ECS::Cluster", "LogicalResourceId": "ECSCluster2" , "ResourceIdentifier": { "ClusterName":"Cluster2" } } ]
-
Per creare un set di modifiche rispetto al tuo stack, esegui il seguente comando create-change-set:
ID=$(aws cloudformation create-change-set --stack-name testStack --change-set-name testSet --resources-to-import file://import.txt --change-set-type IMPORT --template-body file://template.yaml --capabilities CAPABILITY_AUTO_EXPAND --query 'Id' --output text)
Nota: Sostituisci testStack con il nome del tuo stack e template.yaml con il nome del tuo file modello CloudFormation. Il comando precedente restituisce il nome della risorsa Amazon (ARN) del set di modifiche e memorizza l'ARN nell'ID della variabile di ambiente.
È necessario utilizzare CAPABILITY_AUTO_EXPAND solo se il modello utilizza trasformazioni.
-
(Facoltativo) Per attendere che il set di modifiche venga creato correttamente, esegui il comando change-set-create-complete:
aws cloudformation wait change-set-create-complete --change-set-name ${ID}
-
Visualizza il set di modifiche utilizzando la console AWS CloudFormation. Oppure, esegui il comando describe-change-set:
aws cloudformation describe-change-set --change-set-name ${ID}
-
Per applicare il set di modifiche e importare la risorsa nello stack, esegui il comando execute-change-set:
aws cloudformation execute-change-set --change-set-name ${ID}
-
(Facoltativo) Per verificare che tutte le proprietà del modello corrispondano alla risorsa, utilizza il rilevamento delle deviazioni sulla risorsa.
Informazioni correlate
Importa una risorsa esistente in uno stack utilizzando l'interfaccia AWS CLI
