내용으로 건너뛰기

AWS CloudFormation에서 ‘Export EXPORT_NAME cannot be updated as it is in use by STACK_NAME’ 오류를 어떻게 해결합니까?

3분 분량
0

AWS CloudFormation 스택을 업데이트 또는 삭제하려고 하면 다음 오류가 표시됩니다. ‘Export EXPORT_NAME cannot be updated as it is in use by STACK_NAME.’

간략한 설명

이 오류는 업데이트 또는 삭제하려는 스택에서 내보낸 출력 값을 하나 이상의 스택이 가져오는 중이면 발생합니다. 다른 스택이 스택에서 값을 가져오는 중에는 해당 스택을 업데이트 또는 삭제할 수 없습니다.

이 오류를 해결하려면 다음 단계를 완료하십시오.

  1. 내보낸 출력 값을 가져오는 중인 스택을 찾습니다.
  2. 내보낸 값을 가져오는 중인 것으로 확인된 스택에 대하여 스택 템플릿을 업데이트하여 import 문을 출력 값으로 바꿉니다.
  3. 수정된 템플릿을 사용하여 가져오기 중인 스택을 업데이트합니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우 AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

내보낸 출력 값을 가져오는 중인 스택 찾기

내보낸 출력 값을 참조하는 스택을 판별하려면 AWS CLI, AWS Tools for PowerShell 또는 AWS CloudFormation 콘솔을 사용합니다.

AWS CLI

  1. 내보낸 출력 값을 모두 나열하려면 다음 명령을 실행합니다.

    aws cloudformation list-exports
  2. 내보낸 출력 값을 가져오는 중인 모든 스택을 나열하려면 다음 명령을 실행합니다.참고: EXPORT_NAME을 내보낸 출력 값의 이름으로 바꾸십시오.

    aws cloudformation list-imports --export-name EXPORT_NAME

AWS Tools for PowerShell

  1. 내보낸 출력 값을 모두 나열하려면 다음 명령을 실행합니다.

    Get-CFNExport
  2. 내보낸 출력 값을 가져오는 중인 모든 스택을 나열하려면 다음 명령을 실행합니다.

    Get-CFNImportList -ExportName EXPORT_NAME

    참고: EXPORT_NAME을 내보낸 출력 값의 이름으로 바꾸십시오.

AWS CloudFormation 콘솔

  1. AWS CloudFormation 콘솔을 엽니다.
  2. CloudFormation 메뉴에서 내보내기를 선택합니다.
  3. 내보내기 이름에서 스택에서 내보낸 출력 값의 이름을 선택합니다.
  4. 가져오기에서 스택에서 내보낸 출력 값을 가져오는 중인 스택을 선택합니다.

스택 템플릿을 업데이트하여 Import 문을 출력 값으로 바꾸기

  1. AWS CloudFormation 템플릿에서 내장 함수를 스택의 내보낸 출력 값을 참조하는 모든 스택의 가져온 값으로 바꿉니다.

    예를 들어 다음 JSON 및 YAML 템플릿에서 가져온 값 arn:aws:s3:::sample이 내장 함수 Fn::ImportValue 및 !ImportValue를 대신합니다.

    내장 함수가 있는 JSON 템플릿:

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

    가져온 값이 있는 JSON 템플릿:

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

    내장 함수가 있는 YAML 템플릿:

    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

    가져온 값이 있는 YAML 템플릿:

    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. 스택을 업데이트 또는 삭제합니다. 가져오기의 연결이 끊기면 값을 내보낸 스택을 업데이트 또는 삭제합니다.

관련 정보

내보낸 출력 값을 가져오는 스택 나열

list-exports

AWS 공식업데이트됨 2년 전
1 댓글

This article was reviewed and updated on 2024-08-22.

전문가

답글을 게시함 2달 전

관련 콘텐츠