コマンド(AWS CLI)から手軽にLambda
関数を実行して結果を得る事が出来ます。
これを同期呼び出しと言います。
実行するデータはjson形式で作成してアップロードして実行する事も可能です。
オプションpayload
に作成したファイルを指定する事で実行できます。
$ aws lambda invoke --function-name (関数名) --payload file://(作成したファイル)
しかし、単純にファイルを作っただけでは実行できない場合があります。
今回はファイル形式が原因でエラーが出た時の対処方法を記載します。
実行時のエラー内容
実行しようとするとInvalid base64
と言うエラーが発生する場合があります。
$ aws lambda invoke --function-name (関数名) --payload file://(作成したファイル) Invalid base64: "{ "Records": [ *** 実行するデータ *** ] } "
解決方法
読み込むファイルはbase64
形式でエンコードする必要があります。
エンコードの仕方
該当の形式にエンコードする場合、openssl
でエンコードします。
$ openssl base64 -out (エンコード後のファイル名) -in (エンコード前のファイル名) $ aws lambda invoke --function-name (関数名) --payload file://(エンコード後のファイル名) { "StatusCode": 200, "ExecutedVersion": "$LATEST" }