Como posso resolver o erro “Exportar EXPORT_NAME não pode ser atualizado pois está sendo usado pelo STACK_NAME” no AWS CloudFormation?

4 minuto de leitura
0

Tentei atualizar ou excluir minha pilha do AWS CloudFormation, mas recebi um erro semelhante ao seguinte: “Exportar EXPORT_NAME não pode ser atualizado pois está sendo usado pelo STACK_NAME”.

Breve descrição

Você recebe esse erro quando uma ou mais pilhas importam um valor de saída exportado da pilha que você deseja atualizar ou excluir. Você não pode atualizar ou excluir uma pilha quando há outras pilhas importando valores da sua pilha.

Para resolver esse erro, execute as etapas a seguir:

  1. Encontre as pilhas que estão importando o valor de saída exportado.
  2. Para pilhas que você identifica que estão importando o valor exportado, atualize o modelo de pilha para substituir as instruções Importar pelo valor real da saída.
  3. Atualize a pilha de importação usando o modelo modificado.

Solução

Observação: se receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), verifique se está usando sua versão mais recente.

Encontre as pilhas que estão importando o valor de saída exportado

Para ver quais pilhas estão fazendo referência ao valor de saída exportado, use a AWS CLI, as ferramentas da AWS para PowerShell ou o console do AWS CloudFormation.

AWS CLI:

1.    Para listar todos os valores de saída exportados, execute este comando:

aws cloudformation list-exports

2.    Para listar todas as pilhas que estão importando um valor de saída exportado, execute este comando:

aws cloudformation list-imports --export-name EXPORT_NAME

Observação: substitua EXPORT_NAME pelo nome do valor de saída exportado.

Ferramentas da AWS para PowerShell:

1.    Para listar todos os valores de saída exportados, execute este comando:

Get-CFNExport

2.    Para listar todas as pilhas que estão importando um valor de saída exportado, execute este comando:

Get-CFNImportList -ExportName EXPORT_NAME

Observação: substitua EXPORT_NAME pelo nome do valor de saída exportado.

Console do AWS CloudFormation:

1.    Abra o console do AWS CloudFormation.

2.    No menu do CloudFormation, escolha Exportações.

3.    Em Nome da exportação, escolha o nome do valor de saída exportado de sua pilha.

4.    Em Importações, escolha as pilhas que estão importando o valor de saída exportado de sua pilha.

Atualize o modelo de pilha para substituir as instruções Import pelo valor real de saída

1.    Em seu modelo do AWS CloudFormation, substitua as funções intrínsecas pelos valores importados para cada pilha que faz referência ao valor de saída exportado da sua pilha.

Por exemplo, as funções intrínsecas Fn::ImportValue e !ImportValue são substituídas pelo valor importado arn:aws:s3:::sample nos modelos de JSON e YAML a seguir.

Modelo JSON com função intrínseca:

{
    "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" }
          }
       }
    }
 }

Modelo JSON com valor importado:

{
    "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"
          }
       }
    }
 }

Modelo YAML com função intrínseca:

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

Modelo YAML com valor importado:

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.    Atualize ou exclua sua pilha.

Agora que as importações foram desassociadas, você pode atualizar ou excluir a pilha que exportou os valores.


Informações relacionadas

Como listar pilhas que importam um valor de saída exportado

list-exports

list-imports

Cmdlet Get-CFNExport

Cmdlet Get-CFNImportList

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos