目的

以前紹介したAWSでLambdaを使ってみるの応用編ということで、lambdaにリクエストURLで引数を渡して、レスポンスに含めてみます。

手順

  1. こちらを参照して、Lambda関数を作成します。

  2. 関数を以下のように作成します。

    exports.handler = (event, context, callback) => {
        let name = "lambda";
        if (event.queryStringParameters !== null) {
            name = event.queryStringParameters.name;
        }
        let response = {
            statusCode: 200,
            headers: {
                "x-custom-header": "my custom header value"
            },
            body: "hello " + name
        };
        context.succeed(response);
    };
    
  3. 下記例のように、nameにhogeを指定してcurlでリクエストを投げると、”hello hoge”が返却されます。。
    $ curl https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/hello/hello-name?name=hoge
    hello hoge
    

解説

リクエストで指定した引数は、lambda関数内で、queryStringParametersにhashで格納されます。

if (event.queryStringParameters !== null) {
    name = event.queryStringParameters.name;
}

今回は、リクエスト中で?name=hogeを指定したので、event.queryStringParameters.nameに”hoge”が格納されています。

まとめ

LambdaへのリクエストURLにパラメータを指定して、Lambda関数内で使用する方法について説明しました。

参照

公式ドキュメント https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html