はじめに
AWS LambdaとAPI Gatewayを使ってサーバレスなAPIを作成します。
この記事では四則演算をするAPIを作成していきます。
環境構成
以下の構成でAPIを構築します。
Lambda関数を作成
1. Lambda関数の作成
- AWSマネジメントコンソールにログインし、Lambdaサービスに移動します。
- 「関数の作成」ボタンをクリックし、次の設定で関数を作成します。
- 関数名: 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を構築してみてください。