Aws lambda 嵌套的JSON对象应该如何从CloudFormation传递给Lambda函数?

Aws lambda 嵌套的JSON对象应该如何从CloudFormation传递给Lambda函数?,aws-lambda,amazon-cloudformation,boto3,aws-ssm,Aws Lambda,Amazon Cloudformation,Boto3,Aws Ssm,从通过CloudFormation堆栈部署的自动化SSM文档中,我触发Lambda函数CopyToMultipleAccountSlambdFunction和CopyToMultipleRegionSlambdFunction。它们接收的有效载荷格式不正确,导致lambda功能失效 准确的误差如下: Could not parse request body into json: Unexpected character ('9' (code 57)): was expecting comma t

从通过CloudFormation堆栈部署的自动化SSM文档中,我触发Lambda函数CopyToMultipleAccountSlambdFunction和CopyToMultipleRegionSlambdFunction。它们接收的有效载荷格式不正确,导致lambda功能失效

准确的误差如下:

Could not parse request body into json: Unexpected character ('9' (code 57)): was expecting comma to separate Array entries at [Source: (byte[])"{"MetadataJSON":["{"MyAccountNo":"eu-central-1,eu-west-1,eu-west-2"}"],"AmiIDParamName":"/GoldenAMI/OperatingSystemName-OperatingSystemVersion/ProductName-ProductVersion/1", "MetadataParamName":"/GoldenAMI/OperatingSystemName-OperatingSystemVersion/ProductName-ProductVersion/1/temp"}"; line: 1, column: 22] (Service: AWSLambda; Status Code: 400; Error Code: InvalidRequestContentException
与我部署的管道中传递给lambda函数的所有其他有效负载的唯一区别是缺少参数MetadataJSON。此参数的值是一种JSON对象。(我说的有点像“钥匙”:“价值”似乎很奇怪……)

根据测试结果,我通过的值(纯粹出于测试目的)如下

"MetadataJSON":{
  "Type":"String",
  "Default":"{\"MyAccountNumber\":\"eu-central-1,eu-west-1,eu-west-2\"}",
  "Description": "Metadata of accounts and regions for distributing the golden AMI."
},
您可以找到两个lambda函数和

这两个lambda函数的触发器由自动化SSM文档CopyAndShare提供,您可以找到

我在网上读到一个潜在的解决方案是将对象封装在[]构造中。我试过了,但不起作用,Lambda引发的错误未知