업데이트 - AWS CloudFormation

업데이트

템플릿 개발자가 템플릿 내 사용자 지정 리소스의 속성을 변경하고 스택을 업데이트하면 CloudFormation에서는 RequestTypeUpdate로 설정된 요청을 사용자 지정 리소스 공급자에게 전송합니다. 즉, 요청 유형이 Update인 경우 사용자 지정 리소스 코드에서 해당 속성이 변경되는 것을 알고 있으므로 변경 사항을 감지할 필요가 없습니다.

사용자 지정 리소스의 소개와 작동 방식은 사용자 지정 리소스를 사용하여 사용자 지정 프로비저닝 로직 생성 섹션을 참조하세요.

요청

업데이트 요청에는 다음과 같은 필드가 포함됩니다.

RequestType

Update.

RequestId

요청에 대한 고유 ID입니다.

ResponseURL

응답 URL은 사용자 지정 리소스 공급자에서 AWS CloudFormation에 보내는 응답을 수신할 미리 서명된 S3 버킷을 나타냅니다.

ResourceType

CloudFormation 템플릿에서 사용자 지정 리소스의 템플릿 개발자가 선택한 리소스 유형입니다. 사용자 지정 리소스 유형 이름은 최대 60자이고 영숫자 및 다음 문자를 포함할 수 있습니다. _@- 업데이트 중에는 유형을 변경할 수 없습니다.

LogicalResourceId

AWS CloudFormation 템플릿에 있는 사용자 지정 리소스의 템플릿 개발자 선택 이름(논리적 ID).

StackId

사용자 지정 리소스가 들어 있는 스택을 나타내는 Amazon 리소스 이름(ARN).

PhysicalResourceId

custom resource provider에서 정의한 필수 Physical ID로, 해당 공급자에 대해 고유합니다.

PhysicalResourceId에 대해 반환된 값은 사용자 지정 리소스 업데이트 작업을 변경할 수 있습니다. 반환된 값이 같은 경우 일반 업데이트로 간주됩니다. 반환된 값이 다른 경우 AWS CloudFormation은 업데이트를 교체로 인식하고 기존 리소스에 삭제 요청을 전송합니다. 자세한 내용은 AWS::CloudFormation::CustomResource 단원을 참조하십시오.

ResourceProperties

업데이트된 CloudFormation 템플릿에서 템플릿 개발자가 선언한 새 리소스 속성값입니다.

OldResourceProperties

CloudFormation 템플릿에서 템플릿 개발자가 이전에 선언한 새 리소스 속성값입니다.

{ "RequestType" : "Update", "RequestId" : "unique id for this update request", "ResponseURL" : "pre-signed-url-for-update-response", "ResourceType" : "Custom::MyCustomResourceType", "LogicalResourceId" : "name of resource in template", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10", "PhysicalResourceId" : "custom resource provider-defined physical id", "ResourceProperties" : { "key1" : "new-string", "key2" : [ "new-list" ], "key3" : { "key4" : "new-map" } }, "OldResourceProperties" : { "key1" : "string", "key2" : [ "list" ], "key3" : { "key4" : "map" } } }

응답

Success

사용자 지정 리소스 공급자가 리소스를 업데이트할 수 있는 경우 응답에서 CloudFormation은 SUCCESS로 설정된 상태를 예상합니다.

Status

SUCCESS여야 합니다.

RequestId

요청에 대한 고유 ID입니다. 이 응답 값은 요청에서 그대로 복사해야 합니다.

LogicalResourceId

AWS CloudFormation 템플릿에 있는 사용자 지정 리소스의 템플릿 개발자 선택 이름(논리적 ID). 이 응답 값은 요청에서 그대로 복사해야 합니다.

StackId

사용자 지정 리소스가 들어 있는 스택을 나타내는 Amazon 리소스 이름(ARN). 이 응답 값은 요청에서 그대로 복사해야 합니다.

PhysicalResourceId

이 값은 사용자 지정 리소스 공급업체 고유의 ID여야 하며, 크기는 최대 1KB까지 가능합니다. 값은 빈 문자열일 수 없으며, 동일한 리소스의 모든 응답에 대해 동일해야 합니다.

PhysicalResourceId에 대해 반환된 값은 사용자 지정 리소스 업데이트 작업을 변경할 수 있습니다. 반환된 값이 같은 경우 일반 업데이트로 간주됩니다. 반환된 값이 다른 경우 AWS CloudFormation은 업데이트를 교체로 인식하고 기존 리소스에 삭제 요청을 전송합니다. 자세한 내용은 AWS::CloudFormation::CustomResource 단원을 참조하십시오.

NoEcho

선택 사항입니다. Fn::GetAtt 함수를 사용하여 조회할 때 사용자 지정 리소스의 출력을 마스킹할지 여부를 나타냅니다. true로 설정하면 템플릿의 Metadata 섹션에 저장된 값을 제외하고 반환된 모든 값이 별표(*****)로 마스킹됩니다. AWS CloudFormation은 Metadata 섹션에 포함된 정보를 변환, 수정 또는 삭제하지 않습니다. 기본값은 false입니다.

NoEcho를 사용하여 민감한 정보를 마스킹 처리하는 방법에 대한 자세한 내용은 템플릿에 자격 증명을 포함하지 않음 모범 사례를 참조하세요.

Data

선택 사항입니다. 응답과 함께 보낼 사용자 지정 리소스 공급자 정의 이름-값 페어. Fn::GetAtt와 템플릿의 이름을 사용해 여기 제공된 값에 액세스할 수 있습니다.

중요

이름-값 페어에 중요한 정보가 들어 있는 경우 NoEcho 필드를 사용하여 사용자 지정 리소스의 출력을 마스킹해야 합니다. 그러지 않으면 속성값(예: DescribeStackEvents)을 드러내는 API를 통해 값이 표시될 수 있습니다.

{ "Status" : "SUCCESS", "RequestId" : "unique id for this update request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10 (copied from request)", "PhysicalResourceId" : "custom resource provider-defined physical id", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data for key 1", "keyThatCanBeUsedInGetAtt2" : "data for key 2" } }

Failed

리소스를 새 속성 세트로 업데이트할 수 없으면 CloudFormation은 응답에서 실패 이유와 함께 FAILED로 설정된 상태를 예상합니다.

Status

FAILED여야 합니다.

Reason

실패 응답의 이유를 설명합니다.

RequestId

요청에 대한 고유 ID입니다. 이 응답 값은 요청에서 그대로 복사해야 합니다.

LogicalResourceId

AWS CloudFormation 템플릿에 있는 사용자 지정 리소스의 템플릿 개발자 선택 이름(논리적 ID). 이 응답 값은 요청에서 그대로 복사해야 합니다.

StackId

사용자 지정 리소스가 들어 있는 스택을 나타내는 Amazon 리소스 이름(ARN). 이 응답 값은 요청에서 그대로 복사해야 합니다.

PhysicalResourceId

이 값은 사용자 지정 리소스 공급업체 고유의 ID여야 하며, 크기는 최대 1KB까지 가능합니다. 값은 빈 문자열일 수 없으며, 동일한 리소스의 모든 응답에 대해 동일해야 합니다.

PhysicalResourceId에 대해 반환된 값은 사용자 지정 리소스 업데이트 작업을 변경할 수 있습니다. 반환된 값이 같은 경우 일반 업데이트로 간주됩니다. 반환된 값이 다른 경우 AWS CloudFormation은 업데이트를 교체로 인식하고 기존 리소스에 삭제 요청을 전송합니다. 자세한 내용은 AWS::CloudFormation::CustomResource 단원을 참조하십시오.

{ "Status" : "FAILED", "Reason" : "Required failure reason string", "RequestId" : "unique id for this update request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10 (copied from request)", "PhysicalResourceId" : "custom resource provider-defined physical id" }