APIGateway + LambdaでAPIを作成してみた【Python】

IT

概要

API GatewayとLambdaの最小構成でAPIをデプロイしてみます。

関数の準備

文字列を返す関数を作成しました。
正常に動作すると、’Success’という文字を返します。

lambda_function.py


def lambda_handler(event, context):

    try:
        result = {
            "isBase64Encoded": False,
            'statusCode': 200,
            'headers': {
                    'Content-Type': 'application/json',
                    "Access-Control-Allow-Origin": '*'
                },
            'body': 'Success'
        }
        return result
    except Exception as e:
        print(e)
        result = {
            "isBase64Encoded": False,
            'statusCode': 500,
            'headers': {
                    'Content-Type': 'application/json',
                    "Access-Control-Allow-Origin": '*',
                },
            'body': 'Internal Server Error'
        }
        return result

こちらを利用して、Lambda関数を作成していきます。今回、この関数をzip化してlambdaにアップロードします。事前にzip化しておきます。

カレントディレクトリに移動し、zip化のコマンドを実行します。
コマンドは以下で、分かりやすいように同じディレクトリにzipファイルを作成しました。

実行すると、以下のファイルが作成されます。

こちらを後ほど利用します。

Lambda関数の作成

Lambdaのページにアクセスし、「関数を作成」をクリックします。


関数名、ランタイムを設定します。今回はそれぞれ「test_api」「Python 3.12」としています。


作成したzipファイルを「アップロード元」→「.zipファイル」からアップロードします。


コードがアップロードされました。


ランタイムの設定をします。今回は、lambda_function.pyのlambda_handlerを実行したいので、「ハンドラ」に設定します。下記のように設定されていればOKです。

API Gatewayの設定

簡易的に作成するため、下記のトリガー追加からlambdaとAPI Gatewayを連携します。まず、トリガー追加を押下します。


API Gatewayを選択します。


各種設定を行います。API名は好きな名前を入力してください。


LambdaとAPI Gatewayの連携ができました。


実際にリクエストを投げて、確認してみます。


Successの文字が返却されているので、成功です。

最後に

ここまでお読みいただき、ありがとうございました。本来はAPI keyの設定やパスの作り込みなどもっとできることはありますが、今回は簡易版ということでここまでにしておきます。

コメント

タイトルとURLをコピーしました