web-dev-qa-db-ja.com

出力ファイルなしでawslambdaを呼び出す

CLIを使用してAWSでラムダを呼び出そうとしています:

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

ファイルを作成する代わりに、CLIに出力を出力する方法があるかどうか知りたいのですが。

前もって感謝します。

11
BernardoMorais

ラムダ関数を呼び出した後、端末に直接出力することはできません。出力はウィンドウのバッファサイズよりも簡単に大きくなる可能性があるため、これは設計による可能性があります。

簡単な回避策は、次のようにcliコマンドに従って出力ファイルの内容を単に「cat」することです。

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

12
Adam Thomason

stdoutとstderrは基本的にファイルであるため、1つを期待する引数に使用できます。

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

ただし、この場合、残りのコマンド出力はそれとオーバーラップするので、とにかく後でそれをcatする方が良いでしょう

23
Vlad

次のコマンドを使用します。

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

アイデアは、コマンド出力をstderrにリダイレクトし、関数の結果をstdoutにリダイレクトすることです。

4
Mike Shauneu