Como resolvo o erro “Esse modelo não inclui nenhum recurso para importar” no AWS CloudFormation?

3 minuto de leitura
0

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 AWS CloudFormation em cenários com:

  • Recursos condicionais. O recurso que você está importando tem uma chave de condição associada a uma condição que é avaliada como false.
  • Modelos do AWS Serverless Application Model (AWS SAM). O console do AWS CloudFormation não oferece suporte à seção Transformações ao importar recursos. Você não pode importar um recurso com um modelo que usa a transformação AWS::Serverless.
  • Fn::Transform. O console do AWS CloudFormation não oferece suporte ao uso da função intrínseca Fn::Transform ao importar recursos.

Você pode usar a AWS Command Line Interface (AWS CLI) em vez do console do AWS CloudFormation para resolver esse erro para modelos usando:

  • AWS SAM
  • Fn::Transform

Para resolver esse erro para recursos condicionais, verifique se a condição especificada na chave de condição foi avaliada como true para o recurso que está sendo importado.

A AWS CLI requer que você forneça recursos importados explicitamente usando o comando do CloudFormation create-change-set.

Observação: se receber erros ao executar comandos da AWS CLI, verifique se você está usando sua versão mais recente.

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.

Para importar o recurso usando a AWS CLI, execute as seguintes etapas:

Observação: se a sua pilha não está na sua região da AWS padrão, adicione --region a seus comandos ou altere a região padrão definindo e exportando a variável de ambiente AWS_DEFAULT_REGION.

1.    Crie um arquivo de importação de recursos chamado import.txt. Por exemplo:

[
    {
        "ResourceType": "AWS::ECS::Cluster",
        "LogicalResourceId":
            "ECSCluster2"
        ,
        "ResourceIdentifier": {
            "ClusterName":"Cluster2"
        }
    }
]

2.    Para criar um conjunto de alterações em sua pilha, execute o seguinte 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 nome do recurso da Amazon (ARN) do conjunto de alterações e armazena o ARN na variável de ambiente ID.

Observação: você deverá usar CAPABILITY_AUTO_EXPAND somente se o seu modelo usar transformações.

3.    (Opcional) Para esperar que o conjunto de alterações seja criado com êxito, execute o seguinte comando:

aws cloudformation wait change-set-create-complete --change-set-name ${ID}

4.    Veja o conjunto de alterações usando o console do AWS CloudFormation. Ou use este comando describe-change-set:

aws cloudformation describe-change-set --change-set-name ${ID}

5.    Para aplicar o conjunto de alterações e importar seu recurso para a pilha, execute o seguinte comando:

aws cloudformation execute-change-set --change-set-name ${ID}

6.    (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

Importar um recurso existente em uma pilha usando a AWS CLI

Recursos que oferecem suporte a operações de importação e detecção de oscilações

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos