API GatewayとLambdaを連携させた部分の連結テスト
APIエンドポイントを通してLambdaの動作確認を行いました。
実施内容
- CloudFormationによるインフラ構築
- Lambda関数(Python)でセンサーデータを処理
- API Gateway経由でリクエストを送信し、動作を確認
テスト対象のAPIエンドポイント
https://qrj6l149kc.execute-api.ap-northeast-1.amazonaws.com/dev/vehicle-data-demo_01
Code language: JavaScript (javascript)
テスト1:リクエストボディなし
リクエストボディなしでPOSTリクエストを送ってみる。
curl -X POST https://qrj6l149kc.execute-api.ap-northeast-1.amazonaws.com/dev/vehicle-data-demo_01
Code language: JavaScript (javascript)
akira_mba@amba scripts % curl -X POST https://qrj6l149kc.execute-api.ap-northeast-1.amazonaws.com/dev/vehicle-data-demo_01
{"error": "Missing request body"}%
akira_mba@amba scripts %
リクエストボディなしの場合のメッセージも想定通り応答が応答が返ってきている。
{"error": "Missing request body"}
Code language: JSON / JSON with Comments (json)
テスト2:JSONデータあり
JSON形式のセンサーデータのサンプル値を付与して送信してみる
– H : "Content-Type: application/json"
→「送信するデータが JSON 形式であること」をサーバーに伝える
– d : '{"sensor_id": "abc123", "temperature": 25.7}'
→適当なサンプル値
curl -X POST \
-H "Content-Type: application/json" \
-d '{"sensor_id": "abc123", "temperature": 25.7}' \
https://qrj6l149kc.execute-api.ap-northeast-1.amazonaws.com/dev/vehicle-data-demo_01
Code language: JavaScript (javascript)
akira_mba@amba scripts % curl -X POST \
-H "Content-Type: application/json" \
-d '{"sensor_id": "abc123", "temperature": 25.7}' \
https://qrj6l149kc.execute-api.ap-northeast-1.amazonaws.com/dev/vehicle-data-demo_01
{"message": "Sensor data received successfully", "sensor_id": "abc123"}%
akira_mba@amba scripts %
以下の正常応答のメッセージも想定通り
{"message": "Sensor data received successfully", "sensor_id": "abc123"}
Code language: JSON / JSON with Comments (json)
まとめ
CloudFormationによってインフラ構成をコード化し、API Gateway + Lambdaの構成を効率的に構築・テストができました。
今後は以下のような点も検証予定です:
- CloudWatch Logsでのログ監視
- WAFによるアクセス制御の検証
- LambdaからDynamoDB等へのデータ連携