AWS

AWS CLI を使用した Lambda関数の実行

今まで ローカルからLambda関数を実行する場合、Api Gateway を設定しHttpリクエストを実行してLambda関数を実行していました。

Api Gatewayの設定はそう難しくありませんが、Api Gateway を設定しないと作成したLambda関数をローカルから実行できないのもどうなのかと思っていました。
しかし、Api Gatewayを使用しなくても AWS CLI を使用してLambda関数が実行できるようです。

前提

予めAWSへLambda関数を作成しておいて下さい。
Lambda関数の作成については説明しません。
なお、AWS CLI を使う為、AWS CLIを使用できる状態にしておいて下さい。
AWS CLI の設定については説明しません。
開発言語はnode.jsを使用します。

Lambda関数

以下のようなLambda関数を作成しました。
関数名を test_func としています。

const aws = require("aws-sdk");

exports.handler = async (event, context) => {
    context.succeed({
        statusCode: 200,
        body      : event,
    });
};

コマンド

以下は AWS CLI を使用したLambda関数を実行するコマンドの例です。

aws lambda invoke --function-name test_func --payload $(echo '{ "name": "あああ" }' | base64) outputfile.txt

outputfile.txt へ実行結果が記載されます。
ペイロードにBase64を使用しないと以下のようなエラーとなります。

string argument should contain only ASCII characters

実行結果

成功するとステータスコード200が返却されます。

{
    "StatusCode": 200,
    "ExecutedVersion": "$LATEST"
}

また、返却された内容(body)はoutputfile.txtへ出力されます。
内容は以下の通りす。

{"statusCode":200,"body":{"name":"あああ"}}

最後に

特にありません。

© DeNnie.Lab All Rights Reserved.