API Gateway + Lambda で API を作る

API Gateway と Lambda を利用して、API を作ってみます。
Lambda 関数を作成する

Lambda 関数を作成する

先に Lambda関数を作ります。作り方のサンプルはこちら
コードは API Gateway に合わせて変更します。

export const handler = async(event) => {
    const request = event
    const json = JSON.parse(request.body)

    // {"key1": "value1", "key2": "value2", "key3": "value3"} の値が来る前提    
    const responseJson = {
        key1: json.key1,
        key2: json.key2,
        key3: json.key3
    }    
    const response = {
        statusCode: 200,
        body: JSON.stringify(responseJson)
    };
    
    console.log(response)
    return response;
};

var serialize = function(object) {
    return JSON.stringify(object, null, 2)
}

API Gateway で API を作成する

次に、API Gateway の設定を行っていきます。
API Gateway の画面から、APIを作成をクリックします。

API名を入力し、APIの作成をクリックします。

アクションのメニューから、リソースの作成をクリックします。

リソース名を入力し、リソースの作成をクリックします。

メソッドの追加

メソッド

アクションのメニューから、メソッドの作成をクリックします。

POSTを選択し、チェックのアイコンをクリックします。

Lambda プロキシ統合の使用をチェック。
Lambda 関数に、作った Lambda関数名を入力します。
保存をクリックします。

OKをクリックします。

/echo のパスに、POSTでリクエストすると、jsEcho の Lambda 関数が呼ばれるセットが作られました。

デプロイ

API Gateway の環境にデプロイを行います。
アクションのメニューから、APIのデプロイをクリックします。

新しいステージを選択し、ステージ名を入力します。
デプロイをクリックします。

URLが表示されます。このURLでAPIが利用できます。

API へアクセスしてみる

curl でアクセスしてみます。

curl -i -X POST \
   -H "Content-Type:application/json" \
   -d \
'{
    "key1": "value10",
    "key2": "value20",
    "key3": "value30"
}
' \
 'https://465ge1dkxl.execute-api.ap-northeast-1.amazonaws.com/production/echo'

下記のようにレスポンスが返ってきます。

HTTP/2 200
date: Sat, 25 Feb 2023 15:42:54 GMT
content-type: application/json
content-length: 52
x-amzn-requestid: 94a0b414-793c-4159-81f3-39880ec6e93c
x-amz-apigw-id: A5vjsEksNjMFtOw=
x-amzn-trace-id: Root=1-63fa2c7d-5d0fa833144fdda73dd7708b;Sampled=0

{"key1":"value10","key2":"value20","key3":"value30"}

AWS,LambdaAPI Gateway,AWS,Lambda

Posted by kidatti