apigatewayからlamdaを呼び出してみよう

2024/09/11に公開

Lambda関数の作成

まず、AWS Lambdaを使ってランダムに「今日の朝ご飯」を返す関数を作成します。

手順:
AWS Management Consoleにログインし、左上の検索バーで「Lambda」と入力してLambdaサービスに移動します。

「関数を作成」をクリックします。

次の設定を行います:

関数名: MyBreakfastLambda(任意の名前で構いません)
ランタイム: Python 3.8
ロールの設定: 「新しいロールを作成」を選択し、デフォルトのままにします。
「関数を作成」をクリックしてLambda関数を作成します。

コードはこちら

import random

def lambda_handler(event, context):
    # 朝ご飯のリスト
    breakfast_menu = [
        "トーストとコーヒー", 
        "シリアルと牛乳", 
        "フレンチトースト", 
        "卵焼きとご飯", 
        "パンケーキとシロップ", 
        "おにぎりと味噌汁", 
        "ヨーグルトとフルーツ", 
        "サンドイッチ", 
        "ベーグルとクリームチーズ", 
        "オムレツ"
    ]
    
    # ランダムに朝ご飯を選択
    random_breakfast = random.choice(breakfast_menu)
    
    # レスポンス
    return {
        'statusCode': 200,
        'body': f'今日の朝ご飯は: {random_breakfast}'
    }

deployを押して完成させましょう

. API Gatewayの作成
次に、Lambda関数をHTTP APIとして公開するために、API Gatewayを設定します。

手順:
・AWS Management Consoleにログインし、左上の検索バーで「API Gateway」と入力してAPI Gatewayサービスに移動します。
・HTTP APIのbuildをクリックします
・統合を追加をおします
・リージョンと先ほど作ったlamdaを指定します
・API名を指定(例: BreakfastAPI)し、次に進みます。

「ルートの作成」画面で、「GET」メソッドを選択し、/breakfast のパスを指定します(任意のパス名でOKですが、ここではわかりやすく/breakfastにします)。

・確認画面で設定を確認しcreateを押します

・ダッシュボードでauthorizerを付与します

・urlにアクセスして確認します

※動かないとき

・Lambda関数の統合: API Gatewayの統合設定で、Lambda関数を指定したか確認します。
・API Gatewayに設定されたリソースパス(例: /breakfast)と、HTTPメソッド(GET)が正しく設定されているか確認してください。
・Lambdaの「Permissions」タブに移動し、AWSLambdaBasicExecutionRole または類似のIAMロールが付与されていることを確認します。
・正しいURLでアクセスしているか確認します

Discussion