0
지원되지 않는 값에 대한 참조가 없습니다 오류 메시지 "가 발생되지 않는 속성 값"

람다 Cloudformation가 발생되지 않는 속성 값 오류

와 람다 함수를 만들려고 내가 어떤 잘못을 찾을 수 없습니다 때 cloudformation이 실패

값. 모든 값은 AWS 람다 형성 템플릿에서만 사용되었습니다.

또한 Dev의 경우 보안 그룹이 문자열 유형임을 나타내는 오류가 표시되지만 QA에서는 오류가 발생하지 않습니다.

지원되지 않는 값 오류의 원인과 Dev 환경 관련 보안 그룹 관련 오류를 해결하는 방법을 확인할 수 있습니까?

{ 
    "AWSTemplateFormatVersion": "2010-09-09", 
    "Description": "Create Lambda Function For abc", 
    "Parameters": { 
     "ID" : { 
      "Description" : "OwnerContact Value", 
      "Type" : "String", 
      "Default" : "[email protected]" 
     }, 
     "abcVPCNAME": { 
      "Description": "abc VPC NAME", 
      "Type": "String", 
      "Default": "abc-e-dev", 
      "AllowedValues": [ 
       "abc-e-dev", 
       "abc-e-qa", 
       "abc-e-prod", 
       "abc-w-qa", 
       "abc-w-prod", 
      ] 
     } 
    }, 
    "Mappings" : { 
     "params" : { 
      "abc-e-dev" : { 
       "S3bukcet" : "abc-dev-east", 
       "S3Key" : "/lambda/abc_S3.zip", 
       "TicketSNS" : "arn:aws:sns:us-east-1:212:abc", 
       "HOSTNAME" : "abc.com", 
       "ROLENAME" : "arn:aws:iam::454:role/Lambda-role", 
       "Subnets" : ["subnet-1","subnet-2","subnet-3"], 
       "SecGrps" : ["sg-1","sg-2"], 
       "TAG1" : "xyz", 
       "TAG2" : "123" 
      }, 
      "abc-e-qa" : { 
       "S3bukcet" : "abc-qa-east", 
       "S3Key" : "/lambda/abc_S3.zip", 
       "TicketSNS" : "arn:aws:sns:us-east-1:212:abc", 
       "HOSTNAME" : "xyz.com", 
       "ROLENAME" : "arn:aws:iam::454:role/Lambda-role", 
       "Subnets" : ["subnet-1","subnet-2","subnet-3"], 
       "SecGrps" : "sg-123", 
       "TAG1" : "xyz", 
       "TAG2" : "123" 
      }, 
     } 
    }, 
    "Resources": { 
     "abcS3Get": { 
     "Type" : "AWS::Lambda::Function", 
     "Properties" : { 
      "Code" : { 
      "S3Bucket" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "S3bukcet" ]}, 
      "S3Key" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "S3Key" ]} 
      }, 
      "DeadLetterConfig" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "TicketSNS" ]}, 
      "Description" : "abc Lambda Function For File Pickup", 
      "Environment" : { 
      "Key": "abcHOST", 
      "Value": { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "HOSTNAME" ]} 
      }, 
      "FunctionName" : "abc-S3-Pickup", 
      "Handler" : "abc_S3_Get.lambda_handler", 
      "MemorySize" : 128, 
      "Role" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "ROLENAME" ]}, 
      "Runtime" : "python2.7", 
      "Timeout" : 3, 
      "VpcConfig" : { 
      "SecurityGroupIds" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "SecGrps" ]}, 
      "SubnetIds" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "Subnets" ]} 
      }, 
      "Tags" : [{ 
      "Key" : "KEY1", 
      "Value" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "TAG1" ]} 
      }, 
      { 
      "Key" : "KEY2", 
      "Value" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "TAG2" ]} 
      }, 
      { 
      "Key" : "KEY3", 
      "Value" : {"Ref":"ID"} 
      } 
      ] 
     } 
     } 
    } 
} 

답변

0

해상도를 찾았습니다. 환경 변수 값 매개 변수에 문제가 있습니다.

아래에서 수정하여 문제를 해결했습니다.

"Environment" : { 
      "Variables" : { 
       "abcHOST": { 
       "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "HOSTNAME" ] 
       } 
      } 

기타 여러 가지 문제가있었습니다.

"S3Key" : "/lambda/abc_S3.zip", 

"S3Key" : "lambda/abc_S3.zip", 

는 또한 Deadletterconfig 파라미터도 변경 될 필요가있을 것이다.

Current Value: 

"DeadLetterConfig" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "TicketSNS" ]}, 

Correct Value: 

"DeadLetterConfig" : { 
      "TargetArn" : { "Fn::FindInMap" : [ "params", {"Ref":"abcVPCNAME"}, "TicketSNS" ]} 
      }, 

위의 변경 사항이 모두 적용되면 CFT가 작동하기 시작했습니다.