Jor*_*rdi 14 amazon-web-services aws-cli aws-lambda
我正在尝试使用 aws cli 调用我的 lambda:
$ aws lambda invoke \
--function-name soc-update-dynamodb-java \
--invocation-type Event \
--payload file://invoke-payload.json \
response.json
Run Code Online (Sandbox Code Playgroud)
但是,我收到此消息:
调用 Invoke 操作时发生错误 (InvalidRequestContentException):无法将请求正文解析为 json:[Source: (byte[])"E?(?????U???? ?????k.....
payload.json
内容是一个类似 s3 事件的 json:
{
"Records": [
{
"eventVersion": "2.0",
"eventSource": "aws:s3",
"awsRegion": "eu-central-1",
"eventTime": "1970-01-01T00:00:00.000Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "EXAMPLE"
},
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"responseElements": {
"x-amz-request-id": "EXAMPLE123456789",
"x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH"
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "testConfigRule",
"bucket": {
"name": "soc-connect",
"ownerIdentity": {
"principalId": "EXAMPLE"
},
"arn": "arn:aws:s3:::example"
},
"object": {
"key": "example.key",
"size": 1024,
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我可以使用此事件从 aws Web 控制台执行它,但是我在尝试使用 aws cli 调用它时遇到问题。
我从 invoke-payload.json 得到编码:
$ file -i invoke-payload.json
invoke-payload.json: text/plain; charset=us-ascii
Run Code Online (Sandbox Code Playgroud)
如您所见,编码是us-ascii
.
编辑
我还尝试发送嵌入命令的有效载荷。正如您在图片上看到的,我收到了相同的消息:
有任何想法吗?
joh*_*all 18
以下是如何通过向 Lambda 提供简短的 JSON 负载并在终端中显示结果来测试 Lambda:
aws lambda invoke \
--payload '{"beer": "tasty"}' --function-name myfunc \
--cli-binary-format raw-in-base64-out \
/dev/stdout
Run Code Online (Sandbox Code Playgroud)
以antklim 的答案为基础
小智 15
对有效负载参数使用 fileb://(“文件二进制”)语法,这样您就不必通过 base64 运行它
... --payload fileb://invoke-payload.json
对于 AWS CLI 版本 2,添加--cli-binary-format
标志以确保正确解释有效负载。
$ aws lambda invoke \
--function-name soc-update-dynamodb-java \
--invocation-type Event \
--payload file://invoke-payload.json \
--cli-binary-format raw-in-base64-out \
response.json
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4948 次 |
最近记录: |