あめがえるのITブログ

頑張りすぎない。ほどほどに頑張るブログ。

APIGatewayとLambda(Python)でREST APIを作ってみた

ServerlessのWebアプリケーションを作れるようになったらイケてると思ったのでやってみた *1

◆やること

 ・Lambda関数を作成
 ・APIGatewayをREST APIで作成
 ・作成したAPIGatewayからLambda関数に接続

◆構成

◆実践!

1.Lambda関数作成
 1ー1.Lambdaコンソール-[関数の作成]
 1-2.関数の作成ページが表示されたら下記を入力
  ・一からの作成:✅
  ・関数名:MyFunction
  ・ランタイム:Python3.10
  ※他はデフォルト設定

 1-3.[関数の作成]をクリック

※今回はデフォルトのコードをそのまま利用するが下記のようになっている。
※関数が呼び出されたらステータスコード200と"Hello from Lambda!"を返すだけですね。

import json

def lambda_handler(event, context):
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

-

2.APIGateway設定
 2-1.APIGatewayコンソール-左ペインから[API]を選択
 2-2.APIタイプを選択の画面で[REST API]内の[構築]をクリック
 2-3.プロトコルを選択するの画面で下記を入力
  ・新しいAPIの作成: 新しいAPI
  ・API名:MyAPI
  ※他はデフォルト設定

 2-4.[APIの作成]をクリック
 2-5.リソース内の[アクション]を選択し、プルダウンないの[メソッド]をクリック

 2-6.[GET]を選択

 2-7.[GET]の[✅]をクリック

 2-8.右ペインにセットアップ画面が表示されたら下記を入力
  ・統合タイプ:Lambda関数
  ・Lambdaプロキシ統合の使用:✅
  ・Lambdaリージョン:ap-northeast-1
  ・Lambda関数:MyFunction

 2-9.[保存]をクリック
 2-10.リソースの[アクション]プルダウンから[APIのデプロイ]を選択

 2-11.APIのデプロイ画面が表示されたら下記を入力
  ・デプロイされるステージ:新しいステージ
  ・ステージ名:test
  ・ステージの説明:任意
  ・デプロイメントの説明:任意

2-12.[デプロイ]をクリック

-

3.動作確認
 3-1.デプロイ完了後ステージエディターが表示されたら[URLの呼び出し]をクリック
  ※[Hello From Lambda!]が表示されることを確認

 3-2.Lambdaコンソール-[MyFunction]を選択
  ※関数の概要でAPI Gatewayが紐づいていることを確認

後処理

1.Lambda関数削除
 Lambdaコンソール-[MyFunction]-[削除]
2.API Gateway API削除
 APIGatewayコンソール-[API]-[削除]
  

◆感想

APIGatewayは難しいイメージがあったが思いのほか簡単にできた!
他サービスと組み合わせてGETメソッド以外も試していきたいと思います!

*1:*´∀