apigatewayからlamdaを呼び出してみよう
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