问题
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.
回答1:
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
回答2:
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
回答3:
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
来源:https://stackoverflow.com/questions/47675032/invoking-aws-lambda-without-output-file