Ao usar o AWS re:Post, você concorda com os AWS re:Post Termos de uso

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 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:

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

    [
        {
            "ResourceType": "AWS::ECS::Cluster",
            "LogicalResourceId":
                "ECSCluster2"
            ,
            "ResourceIdentifier": {
                "ClusterName":"Cluster2"
            }
        }
    ]
  2. 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.

  3. (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}
  4. 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}
  5. 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}
  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

Suporte ao tipo de recursos

AWS OFICIAL
AWS OFICIALAtualizada há 6 meses