업데이트
템플릿 내부에서 사용자 지정 리소스의 속성이 변경된 경우 RequestType
이 Update
로 설정된 사용자 지정 리소스 제공자 요청이 전송됩니다. 따라서 업데이트가 호출될 때 해당 속성이 변경되는 것을 알고 있으므로 사용자 지정 리소스 코드는 변경 사항을 감지할 필요가 없습니다.
요청
업데이트 요청에는 다음과 같은 필드가 포함됩니다.
- RequestType
-
Update
. - RequestId
-
요청에 대한 고유 ID입니다.
- ResponseURL
-
응답 URL은 사용자 지정 리소스 공급자에서 AWS CloudFormation에 보내는 응답을 수신할 미리 서명된 S3 버킷을 나타냅니다.
- ResourceType
-
AWS CloudFormation 템플릿에서 사용자 지정 리소스의 템플릿 개발자가 선택한 리소스 유형입니다. 사용자 지정 리소스 유형 이름은 최대 60자이고 영숫자 및 다음 문자를 포함할 수 있습니다.
_@-
업데이트 중에는 유형을 변경할 수 없습니다. - LogicalResourceId
-
AWS CloudFormation 템플릿에 있는 사용자 지정 리소스의 템플릿 개발자 선택 이름(논리적 ID).
- StackId
-
사용자 지정 리소스가 들어 있는 스택을 나타내는 Amazon 리소스 이름(ARN).
- PhysicalResourceId
-
custom resource provider에서 정의한 필수 Physical ID로, 해당 공급자에 대해 고유합니다.
PhysicalResourceId
에 대해 반환된 값은 사용자 지정 리소스 업데이트 작업을 변경할 수 있습니다. 반환된 값이 같은 경우 일반 업데이트로 간주됩니다. 반환된 값이 다른 경우 AWS CloudFormation은 업데이트를 교체로 인식하고 기존 리소스에 삭제 요청을 전송합니다. 자세한 내용은AWS::CloudFormation::CustomResource
단원을 참조하십시오. - ResourceProperties
-
업데이트된 AWS CloudFormation 템플릿에서 템플릿 개발자가 선언한 새 리소스 속성 값입니다.
- OldResourceProperties
-
AWS 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-east-2:namespace:stack/stack-name/guid", "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
사용자 지정 리소스 공급자가 리소스를 업데이트할 수 있는 경우 응답에서 AWS CloudFormation은 SUCCESS
로 설정된 상태를 예상합니다.
- 상태 표시기
-
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
를 사용하여 민감한 정보를 마스킹 처리하는 방법에 대한 자세한 내용은 템플릿에 자격 증명을 포함하지 않음 모범 사례를 참조하세요. - 데이터
-
선택 사항입니다. 응답과 함께 보낼 사용자 지정 리소스 공급자 정의 이름-값 페어.
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-east-2:namespace:stack/stack-name/guid (copied from request)", "PhysicalResourceId" : "custom resource provider-defined physical id", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data for key 1", "keyThatCanBeUsedInGetAtt2" : "data for key 2" } }
Failed
리소스를 새 속성 세트로 업데이트할 수 없으면 AWS CloudFormation은 응답에서 실패 이유와 함께 FAILED
로 설정된 상태를 기대합니다.
- 상태 표시기
-
FAILED
여야 합니다. - 이유
-
실패 응답의 이유를 설명합니다.
- 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-east-2:namespace:stack/stack-name/guid (copied from request)", "PhysicalResourceId" : "custom resource provider-defined physical id" }