我正在尝试从Windows 10中的AWS CLI调用lambda函数。我以前通过 AWS configure 完成了我的客户端配置。
使用的命令是:
aws lambda invoke \
--function-name arn:aws:lambda:us-east-1:111111111:function:xxx \
--invocation-type RequestResponse
但我的系统返回错误aws: error: too few arguments
,如下所示:
你们可以指导我在这次执行中取得成功吗?
谢谢
答案 0 :(得分:10)
看起来你需要提供一个outfile。所以重新运行如下:
aws lambda invoke \
--function-name arn:aws:lambda:us-east-1:111111111:function:xxx \
--invocation-type RequestResponse \
outfile.txt
答案 1 :(得分:6)
除了@ jarmod的回答: 如果要将输出直接发送到stdout:
,可以使用-
aws lambda invoke --function-name my_function --invocation-type RequestResponse --log-type Tail - | grep "LogResult"| awk -F'"' '{print $4}' | base64 --decode
或者如果您有jq
aws lambda invoke --function-name my_function --invocation-type RequestResponse --log-type Tail - | jq '.LogResult' -r | base64 --decode
答案 2 :(得分:0)
如果您要与Jenkins(Windows)集成,并且不想使用Lambda插件。 Lambda插件以某种方式不获取我在jenkins绑定中设置的凭据。
首先准备有效负载。我已经从用户那里获取了参数。
@echo off
@echo {> payload.json
@echo "type": "RequestType",>> payload.json
@echo "siteCode": "%SiteCode%",>> payload.json
@echo "siteDesc": "%SiteDesc%",>> payload.json
@echo }>> payload.json
使用aws cli调用lambda。
aws lambda invoke --function-name "FuntionName" --invocation-type RequestResponse --region us-zone-id --log-type Tail --payload file://payload.json response.json
您可以使用type命令打印响应。
type response.json
答案 3 :(得分:0)
AWS CLI 版本详情
aws-cli/2.1.13 Python/3.7.9 Windows/10 exe/AMD64 prompt/off
<块引用>
调用Lambda cmd,Payload需要Base64编码(https://www.base64decode.org/),如果需要也可以安装插件
aws configure // If applicable perform the aws configure
aws lambda invoke --function-name test_details:DEV --payload #yHw response_test.json
成功响应
{
"StatusCode": 200,
"ExecutedVersion": "18"
}
<块引用>
response_test.json 应该在相同的路径下生成。 参考文档 https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/invoke.html