Invoking aws lambda without output file

2020-08-09 10:54发布

I'm trying to invoke a lambda on AWS using CLI:

aws lambda invoke --function-name GetErrorLambda --payload '{"body":"{\"Id\":[\"321\",\"123\"]}"}' \output.

I would like to know if there's a way to print the output on the cli instead of create a file.

Thanks in advance.

3条回答
趁早两清
2楼-- · 2020-08-09 11:37

I use following command:

aws lambda invoke --function-name name --payload '{...}' /dev/stdout 1>/dev/null

The idea is redirect command output to stderr and the function result to stdout

查看更多
狗以群分
3楼-- · 2020-08-09 11:44

stdout and stderr are basically files so can be used for arguments that expect one

aws lambda invoke --function-name GetErrorLambda --payload '{"body":"{\"Id\":[\"321\",\"123\"]}"}' /dev/stdout

though in this case the rest of the commands output will overlap with it, so probably better to cat it later anyways

查看更多
欢心
4楼-- · 2020-08-09 11:56

It's not possible to output directly to the terminal after invoking a lambda function. This is likely by design as the output could easily be greater than the buffer size for a window.

A simple workaround would be to simply 'cat' out the contents of the output file following the cli command like so:

aws lambda invoke --function-name GetErrorLambda --payload '{"body":"{\"Id\":[\"321\",\"123\"]}"}' \output. && cat outputFileName.txt

查看更多
登录 后发表回答