分散マップを使用して Amazon S3 から CSV ファイルを処理する - AWS Step Functions

分散マップを使用して Amazon S3 から CSV ファイルを処理する

このサンプルプロジェクトでは、分散マップ状態を使用して、Lambda 関数を使用して生成された CSV ファイルの 10,000 行以上を反復処理する方法を示しています。CSV ファイルにはカスタマーの注文の配送情報が含まれ、Amazon S3 バケットに保存されます。分散マップは CSV ファイル内の 10 行のバッチを繰り返し処理してデータ分析を行います。

分散マップには、遅延した注文を検出する Lambda 関数が組み込まれています。分散マップには、遅延した注文を一括処理し、遅延した注文を配列で返すインラインマップも含まれています。遅延した注文ごとに、インラインマップは Amazon SQS キューにメッセージを送信します。最後に、このサンプルプロジェクトは、マップ実行の結果を AWS アカウント 内の別の Amazon S3 バケットに保存します。

分散マップを使用すると、同時に最大 10,000 件の子ワークフローを並列実行できます。このサンプルプロジェクトでは、分散マップの最大同時実行数は 1000 に設定されており、子ワークフローの並列実行数は 1000 に制限されています。

このサンプルプロジェクトは、ステートマシン、サポートする AWS リソースを作成し、関連する IAM アクセス許可を構成します。このサンプルプロジェクトについて調べ、分散マップを使用して大規模な並列ワークロードをオーケストレーションしたり、独自のプロジェクトの出発点として使用したりする方法について説明します。

ステップ 1: ステートマシンを作成する

  1. Step Functions コンソールを開き、[ステートマシンの作成] を選択します。

  2. [テンプレートから作成] を選択し、関連するスターターテンプレートを見つけます。[次へ] を選択して続行します。

  3. テンプレートの使用方法を選択します。

    1. デモの実行 – 読み取り専用のステートマシンを作成します。確認後、ワークフローとすべての関連リソースを作成できます。

    2. その上に構築する – 編集可能なワークフロー定義が提供され、内容を確認・カスタマイズし、独自のリソースでデプロイできます (関数やキューなどの関連リソースは自動的には作成されません)。

  4. [テンプレートの使用] を選択して選択を続行します。

    注記

    アカウントにデプロイされたサービスには、Standard 料金が適用されます。

ステップ 2: デモステートマシンを実行する

[デモの実行] オプションを選択した場合、すべての関連リソースがデプロイされ、実行準備が整います。[その上に構築する] オプションを選択した場合は、プレースホルダー値の設定や、カスタムワークフローの実行に必要な追加リソースの作成が必要になることがあります。

  1. [Deploy and run] (デプロイと実行) を選択します。

  2. CloudFormation スタックがデプロイされるのを待ちます。これには最大 10 分かかることがあります。

  3. [実行を開始] オプションが表示されたら、[入力] を確認し、[実行を開始] を選択します。

お疲れ様でした。

これで、ステートマシンのデモが実行されます。グラフビューでステートを選択すると、入力、出力、変数、定義、イベントを確認できます。