- 「API Gateway」から「Lambda」の関数を実行する
- 「API Gateway」から「Lambda」にクエリパラメータを渡す
- 「API Gateway」から送られたクエリパラメータを受け取って、「Lambda」で利用する
- API Gateway+Lambdaで、日本語が文字化けしたら
「API Gateway」から「Lambda」の関数を実行する
「アクション」の「リソースの作成」からメソッド(ディレクトリ)を作成し、「/api/dir1/path1」「/api/dir1/path2」を作る。
次に「/api/dir1/path1」を選択した状態で、「アクション」の「メソッドの作成」から「GET」を作成する
GETのセットアップ画面で、呼び出したい「Lambda」を指定して保存します
これで「テスト」を実行すると、「API Gateway」から選択した「Lambda」の関数が呼び出されるようになります。
「API Gateway」から「Lambda」にクエリパラメータを渡す
上記の「メソッドリクエスト」から「URL クエリ文字列パラメータ」に受け取りたいクエリパラメータを登録する。※「必須」「キャッシュ」は一度登録した後に、選択できるようになります
次に「統合リクエスト」から「マッピングテンプレート」を登録する
「マッピングテンプレートの追加」をクリックして、Content-Typeに「application/json」を登録
すると、画面下に以下のような入力エリアが出現します
その入力エリアに、「メソッドリクエスト」の「URL クエリ文字列パラメータ」をJSON形式で登録します
{ "my_param1": "$input.params('my_param1')", "my_param2": "$input.params('my_param2')", "my_param3": "$input.params('my_param3')" }
「my_param1~3」の部分を、自分で設定した「URL クエリ文字列パラメータ」の名称に置き換えてください
以上で、「API Gateway」の設定は完了です
「API Gateway」から送られたクエリパラメータを受け取って、「Lambda」で利用する
def lambda_handler(event, context): return { 'status': 200, 'body': event['my_param1'] # 自身の設定したクエリパラメータ }
といった感じで、
event['my_param1'] # 自身の設定したクエリパラメータ
とすれば、「API Gateway」から送られたクエリパラメータを「Lambda」で使用することが出来ます
API Gateway+Lambdaで、日本語が文字化けしたら
右下の「統合レスポンス」をクリックして
マッピングテンプレートのContent-Typeに
application/json;charset=UTF-8
テンプレートに
$input.json('$')
を入力して保存します。
これで日本語が文字化けしなくなりました。