AWS LambdaとAPI GatewayでサーバーレスAPIを構築する

スポンサーリンク
ハンズオン
スポンサーリンク

はじめに

AWS LambdaとAPI Gatewayを使ってサーバレスなAPIを作成します。
この記事では四則演算をするAPIを作成していきます。

環境構成

以下の構成でAPIを構築します。

Lambda関数を作成

1. Lambda関数の作成

  1. AWSマネジメントコンソールにログインし、Lambdaサービスに移動します。
  2. 「関数の作成」ボタンをクリックし、次の設定で関数を作成します。
  • 関数名: CalaclateFunction(任意の関数名でよいです。)
  • ランタイム: Python 3.12
  • 実行ロール: 基本的な Lambda アクセス権限で新しいロールを作成
  • 詳細設定は必要に応じて設定してください。本記事ではデフォルトの設定を使います。

2. Lambda関数のコードを実装

以下のPythonコードをLambda関数に追加します。operationパラメータに基づいて足し算、引き算、掛け算、割り算を行います。

import json

def lambda_handler(event, context):
    # クエリパラメータから値を取得
    num1 = float(event['queryStringParameters']['num1'])
    num2 = float(event['queryStringParameters']['num2'])
    operation = event['queryStringParameters']['operation']
    
    # 四則演算を実行
    if operation == 'add':
        result = num1 + num2
    elif operation == 'subtract':
        result = num1 - num2
    elif operation == 'multiply':
        result = num1 * num2
    elif operation == 'divide':
        if num2 == 0:
            return {
                'statusCode': 400,
                'body': json.dumps('Division by zero is not allowed.')
            }
        result = num1 / num2
    else:
        return {
            'statusCode': 400,
            'body': json.dumps('Invalid operation. Use add, subtract, multiply, or divide.')
        }
    
    # 結果を返す
    return {
        'statusCode': 200,
        'body': json.dumps({'result': result})
    }

API GatewayでHTTP APIを作成

次に、API GatewayでAPIとLambda関数の紐づき設定をします。

1. API Gatewayに移動

AWSコンソールでAPI Gatewayに移動し、「APIの作成」をクリックします。HTTP APIを選択し、「構築」をクリックします。

2. API設定

以下を入力し、「保存」をクリックします。

  • 統合の設定で、先ほど作成したLambda関数「CalaclateFunction」を選択
  • API名:四則演算API

3. ルートの設定

ルートの設定を、GETメソッドを選択します。パスには/と入力します。

4. ステージの設定

ステージ名:$default、自動デプロイを有効化して次へを選択します。

5. 確認して作成

内容を確認して、「作成」ボタンをクリックしてください。

APIを実行

APIののURL以下の手順で確認できます。

  • 左メニューのDeploy>Stagesを選択すると、ステージ一覧が表示されます。
  • 「$default」を選択すると、ステージの詳細が表示され、「URL」を呼び出すからAPIのURLを確認

以下を参考に四則演算のAPIのURLにアクセスすると結果が表示されます。

1. たし算

パラメタ名
num1 10
num2 5
operation add
curl -X GET https://your-api-id.execute-api.region.amazonaws.com?num1=10&num2=5&operation=add
# {"result": "15.0"}

2. ひき算

パラメタ名
num1 10
num2 5
operation subtract
curl -X GET https://your-api-id.execute-api.region.amazonaws.com?num1=10&num2=5&operation=subtract
# {"result": "8.0"}

3. かけ算

パラメタ名
num1 10
num2 5
operation multiply
curl -X GET https://your-api-id.execute-api.region.amazonaws.com?num1=10&num2=5&operation=multiply
# {"result": "50.0"}

4. わり算

パラメタ名
num1 10
num2 5
operation divide
curl -X GET https://your-api-id.execute-api.region.amazonaws.com?num1=10&num2=5&operation=divide
# {"result": "2.0"}

まとめ

この記事では、AWS LambdaとAPI Gatewayを使って、Pythonで四則演算を行うサーバーレスAPIを作成する方法を説明しました。
この仕組みは、計算以外にもさまざまな用途で利用できる汎用的な構成です。
他サービスと組み合わせて、高度なAPIを構築してみてください。

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