AWS CLI执行lambda函数问题

时间:2017-09-18 15:22:12

标签: amazon-web-services aws-lambda aws-cli

我正在尝试从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,如下所示:

enter image description here

你们可以指导我在这次执行中取得成功吗?

谢谢

4 个答案:

答案 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