🔀

Step Functions + API Gateway + Lambda + S3 で注文処理のサーバーレスワークフローを作る

難易度:中級
所要時間:55 分

ラボ概要

API Gateway(HTTP API)で受けた注文リクエストを Step Functions でオーケストレーションし、複数の Lambda で処理して結果を S3 に保存する。

このラボでは、サーバーを 1 台も立てずに、注文 (order) を受け付けて検証・加工し、結果を S3 に保存するサーバーレスワークフローを構築します。入口は API Gateway の HTTP API、処理の制御は AWS Step Functions の Express ワークフロー、実際の処理は 3 つの Lambda 関数、出力先は Amazon S3 です。

リクエストの流れは「API Gateway(POST /orders)→ Step Functions が同期実行(StartSyncExecution)→ ValidateOrder(入力検証)→ EnrichOrder(金額計算・タイムスタンプ付与)→ SaveOrder(S3 へ保存)」となります。各 Lambda の出力が次の Lambda の入力へと受け渡されていく様子を、手を動かして理解します。

学習目標

  • 複数の Lambda 関数を AWS Step Functions(Express)で順番にオーケストレーションできる
  • ある Task の出力が次の Task の入力になる、ステートマシンのデータの流れを理解できる
  • Lambda 実行ロールに最小限の S3 権限(s3:PutObject)だけを付与できる
  • 環境変数を使って Lambda からバケット名などの設定を外出しできる
  • API Gateway(HTTP API)を AWS サービス統合で Step Functions の StartSyncExecution に接続できる
  • API・ワークフロー・S3 を一気通貫で動作確認できる。同期呼び出し(StartSyncExecution)の応答は「実行結果のエンベロープ」であり、ワークフローの出力は応答 JSON の output フィールドに文字列化された JSON として入っていることを理解する

前提

  • フェデレーテッドコンソールに cloud_user ロールでサインイン済みであること。
  • すべての操作を アジアパシフィック (東京) ap-northeast-1 リージョンで行うこと(IAM などグローバルサービスを除く)。画面右上のリージョン表示が「東京」であることを確認してください。
  • JSON と簡単な Python(boto3)を読める程度の知識があると理解がスムーズです。
  • サンドボックスのガードレールにより、本ラボは EC2/RDS を使わないサーバーレス構成のみで完結します。
🔀

ハンズオンラボとは?

本物の Azure リソースを使い、リスクなく試行錯誤しながら実践的なスキルを身につけられます。

他のラボを見る