AWS CloudFormation의 리소스 공급자에서 Fn::GetAtt 함수를 사용할 때 다음 오류가 발생합니다.
‘Attribute 'Key' does not exist’
간략한 설명
CloudFormation은 필요한 속성을 받지 못하기 때문에 "Attribute 'Key' does not exist" 오류를 반환합니다. 리소스의 ReadHandler는 organization-service-resource.json 리소스 공급자 스키마 파일의 readOnlyProperties 목록에 지정된 속성을 반환해야 합니다.
리소스 공급자 사용과 관련된 다른 오류는 다음 문서를 참조하세요.
해결 방법
1. organization-service-resource.json 파일에서 readOnlyProperties 정의가 다음 형식을 따르는지 확인합니다. 여기서 Output은 properties(속성) 섹션에 정의된 속성입니다. 예를 들면 다음과 같습니다.
"readOnlyProperties": [
"/properties/Output"
],
참고: organization-service-resource.json 형식은 프로젝트의 루트 디렉터리에 있습니다.
2. ReadHandler에서 model 객체의 속성을 설정합니다. 예를 들면 다음과 같습니다.
final ResourceModel model = request.getDesiredResourceState();
model.setOutput("abcdxyz");
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.SUCCESS)
.build();
관련 정보
AWS CloudFormation CLI(GitHub 웹 사이트에서 제공)