¿Cómo puedo resolver el error «La exportación EXPORT_NAME no se puede actualizar porque STACK_NAME la está utilizando» en AWS CloudFormation?

4 minutos de lectura
0

He intentado actualizar o eliminar mi pila de AWS CloudFormation, pero he recibido un error similar al siguiente: «La exportación EXPORT_NAME no se puede actualizar porque STACK_NAME la está utilizando».

Breve descripción

Aparece este error cuando una o más pilas importan un valor de salida exportado de la pila que desea actualizar o eliminar. No puede actualizar ni eliminar su pila cuando otras pilas importan valores de su pila.

Para resolver este error, siga estos pasos:

  1. Busque las pilas que importan el valor de salida exportado.
  2. Para las pilas que identifique como importadoras del valor exportado, actualice la plantilla de pila para reemplazar las sentencias de importación por el valor de salida real.
  3. Actualice la pila de importación con la plantilla modificada.

Resolución

Nota: Si recibe errores al ejecutar los comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Busque las pilas que importan el valor de salida exportado

Para ver qué pilas hacen referencia al valor de salida exportado, utilice la AWS CLI, AWS Tools para PowerShell o la consola de AWS CloudFormation.

AWS CLI:

1.    Para mostrar todos los valores de salida exportados, ejecute el siguiente comando:

aws cloudformation list-exports

2.    Para ver una lista de todas las pilas que importan un valor de salida exportado, ejecute el siguiente comando:

aws cloudformation list-imports --export-name EXPORT_NAME

Nota: Sustituya EXPORT_NAME por el nombre del valor de salida exportado.

AWS Tools para PowerShell:

1.    Para mostrar todos los valores de salida exportados, ejecute el siguiente comando:

Get-CFNExport

2.    Para ver una lista de todas las pilas que importan un valor de salida exportado, ejecute el siguiente comando:

Get-CFNImportList -ExportName EXPORT_NAME

Nota: Sustituya EXPORT_NAME por el nombre del valor de salida exportado.

Consola de AWS CloudFormation:

1.    Abra la consola de AWS CloudFormation.

2.    En el menú de CloudFormation, seleccione Exportaciones.

3.    En Nombre de exportación, seleccione el nombre del valor de salida exportado de su pila.

4.    En Importaciones, elija las pilas que importan el valor de salida exportado de su pila.

Actualice la plantilla de pila para reemplazar las sentencias de importación por el valor de salida real

1.    En su plantilla de AWS CloudFormation, sustituya las funciones intrínsecas por los valores importados para cada pila que haga referencia al valor de salida exportado de su pila.

Por ejemplo, las funciones intrínsecas Fn::ImportValue y !ImportValue se sustituyen por el valor importado arn:aws:s3:::sample en las siguientes plantillas de JSON y YAML.

Plantilla JSON con función 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" }
          }
       }
    }
 }

Plantilla JSON con 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"
          }
       }
    }
 }

Plantilla YAML con función 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

Plantilla YAML con 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.    Actualice o elimine su pila.

Ahora que las importaciones están desvinculadas, puede actualizar o eliminar la pila que exportó los valores.


Información relacionada

Enumerar las pilas que importan un valor de salida exportado

list-exports

list-imports

Get-CFNExport Cmdlet

Get-CFNImportList Cmdlet

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años