AWS CloudFormation에서 리소스 공급자 리소스에 Fn::GetAtt 함수를 사용할 때 "Attribute 'Key' does not exist" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 8월 17일

AWS CloudFormation에서 리소스 공급자 리소스에 Fn::GetAtt 함수를 사용할 때 "Attribute 'Key' does not exist" 오류가 발생합니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

리소스의 ReadHandler리소스 공급자 스키마 파일 organization-service-resource.jsonreadOnlyProperties 목록에서 지정된 속성을 반환하지 않을 때 "Attribute 'Key' does not exist" 오류가 발생합니다. AWS CloudFormation이 필요한 속성을 받지 못하기 때문에 이 오류를 반환합니다.

리소스 공급자 사용과 관련된 다른 오류 때문에 문제를 겪고 있는 경우에는 다음 문서에서 추가적인 문제 해결 단계를 참조하세요.

해결 방법

1.    organization-service-resource.json 파일에서 readOnlyProperties 정의가 다음 형식을 따르는지 확인합니다. 여기서 Outputproperties 섹션에 정의된 속성입니다. 예를 들어 다음과 같습니다.

"readOnlyProperties": [
    "/properties/Output"
],

참고: 리소스 공급자 스키마 파일은 organization-service-resource.json 형식의 JSON 파일이며 프로젝트의 루트 디렉토리에 있습니다.

2.    ReadHandler에서 model 객체의 속성(다음 예제에서는 Output)을 설정합니다. 예를 들어 다음과 같습니다.

final ResourceModel model = request.getDesiredResourceState();
model.setOutput("abcdxyz");
return ProgressEvent.<ResourceModel, CallbackContext>builder()
    .resourceModel(model)
    .status(OperationStatus.SUCCESS)
    .build();

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?