Amazon AWS CLI不允许在payload参数中使用有效的JSON,这是因为AWS CLI在执行命令时会自动进行JSON编码。如果尝试将有效的JSON作为payload参数传递,AWS CLI会对其进行二次编码,导致错误。
解决方法是使用AWS CLI的--cli-binary-format参数来禁用自动JSON编码。以下是一个示例:
aws lambda invoke \
--function-name my-function \
--cli-binary-format raw-in-base64-out \
--payload file://input.json \
output.txt
在这个示例中,我们使用--cli-binary-format参数将输入的payload参数格式设置为原始的base64编码。然后,我们通过指定input.json文件作为payload参数的值来传递有效的JSON数据。
请注意,--cli-binary-format参数只适用于AWS CLI版本2或更高版本。如果您使用的是较旧的AWS CLI版本,请考虑升级到最新版本。