Como resolvo o erro “Esse modelo não inclui nenhum recurso para importar” no AWS CloudFormation?
Eu recebo o seguinte erro no console do AWS CloudFormation: “Esse modelo não inclui nenhum recurso para importar. Saiba mais.”
Breve descrição
Você recebe esse erro ao usar o console do AWS CloudFormation para importar recursos para uma pilha existente que foi criada fora do CloudFormation.
Esse erro pode ocorrer quando você usa o console do CloudFormation nos seguintes cenários:
- O recurso que você está importando tem uma chave de condição associada a uma condição que é avaliada como false.
- Você usa a função intrínseca Fn::Transform ou a seção de modelo de transformação, como AWS::Serverless ou AWS::Include, ao importar um recurso.
Para resolver o erro dos recursos condicionais, a condição especificada na chave de condição deve ser avaliada como verdadeira para o recurso que você está importando.
Para resolver o erro de modelos que usam transformações, use a AWS Command Line Interface (AWS CLI) em vez do console do AWS CloudFormation.
A AWS CLI requer que você forneça recursos importados explicitamente usando o comando do CloudFormation create-change-set.
Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Solução
No exemplo a seguir, a AWS CLI é usada para importar um recurso AWS::ECS::Cluster existente em uma pilha do CloudFormation:
Resources: ... ECSCluster2: Condition: MyCondition Type: AWS::ECS::Cluster DeletionPolicy: Retain Properties: ClusterName: Cluster2
**Observação:**Antes de continuar nas próximas etapas, verifique se a condição MyCondition foi avaliada como true.
Recursos de importação
Observação:Se sua pilha não estiver na sua região padrão da AWS, adicione--region aos seus comandos. Ou defina e exporte a variável de ambiente AWS_DEFAULT_REGION para alterar a região padrão.
Para importar os recursos, conclua as etapas a seguir:
-
Crie um arquivo de importação de recursos chamado import.txt:
[ { "ResourceType": "AWS::ECS::Cluster", "LogicalResourceId": "ECSCluster2" , "ResourceIdentifier": { "ClusterName":"Cluster2" } } ]
-
Para criar um conjunto de alterações em sua pilha, execute o 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)
**Observação:**Substitua testStack pelo nome da sua pilha e template.yaml pelo nome do arquivo de modelo do CloudFormation. O comando anterior retorna o ARN do conjunto de alterações e armazena o ARN na variável de ambiente ID.
Se seu modelo usa transformações, você deve usar CAPABILITY\ _AUTO\ _EXPAND.
-
(Opcional) Para aguardar a criação bem-sucedida do conjunto de alterações, execute o comando change-set-create-complete:
aws cloudformation wait change-set-create-complete --change-set-name ${ID}
-
Veja o conjunto de alterações usando o console do AWS CloudFormation. Ou execute o comando describe-change-set:
aws cloudformation describe-change-set --change-set-name ${ID}
-
Para aplicar o conjunto de alterações e importar seu recurso para a pilha, execute o comando execute-change-set :
aws cloudformation execute-change-set --change-set-name ${ID}
-
(Opcional) Para confirmar se todas as propriedades de seu modelo correspondem ao seu recurso, use a detecção de oscilação no recurso.
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há 8 meses
- AWS OFICIALAtualizada há 2 meses