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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

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

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

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

AWS CloudFormation テンプレートと追加リソース

CloudFormation テンプレートを使用して、このサンプルプロジェクトをデプロイします。このテンプレートは、 に次のリソースを作成します。 AWS アカウント:

  • Step Functions ステートマシン

  • ステートマシンの実行ロール。このロールは、ステートマシンが他の にアクセスするために必要なアクセス許可を付与します。 AWS のサービス Lambda 関数の Invoke アクションなどの および リソース。

  • 顧客注文の詳細を含むCSVファイルCSVGeneratorFunctionを生成する という名前の Lambda 関数。

  • CSV ジェネレーター Lambda 関数の実行ロール。このロールは、他の にアクセスするアクセス許可を関数に付与します。 AWS のサービス.

  • 生成されたCSVファイルを保存する Amazon S3 入力バケット。

  • CSV ファイルデータを分析し、遅延注文を検出する遅延注文検出 Lambda 関数。

  • 注文の遅延 Lambda 関数の実行ロール。このロールは、他の にアクセスするアクセス許可を関数に付与します。 AWS のサービス.

  • 顧客の注文の分析結果を保存する Amazon S3 出力バケット。

  • Step Functions が遅延注文ごとにメッセージを送信する Amazon SQSキュー。これらのメッセージには、顧客の IDs とその注文が含まれます。

  • ステートマシンの実行履歴に関連する情報を保存する CloudWatch ロググループ。

重要

各サービスには標準料金が適用されます。

ステップ 1: ステートマシンを作成してリソースをプロビジョニングする

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

  2. Distributed Map to process a CSV file in S3 検索ボックスに「」と入力し、「分散マップ」を選択して、返された検索結果から S3 内のCSVファイルを処理します。

  3. [次へ] を選択して続行します。

  4. デモを実行して読み取り専用と ready-to-deploy ワークフローを作成するか、ビルドを選択して編集可能なステートマシン定義を作成し、後でデプロイできます。

    このサンプルプロジェクト用に作成されるリソースについては、「AWS CloudFormation テンプレートと追加リソース」を参照してください。

    次の図は、分散マップが S3 サンプルプロジェクトのCSVファイルを処理するワークフローグラフを示しています。

    S3 サンプルプロジェクトのCSVファイルを処理する分散マップのワークフローグラフ。
  5. [テンプレートの使用] を選択して選択を続行します。

次のステップは、前の選択肢によって異なります。

  1. デモの実行 – によってデプロイされたリソースを使用して読み取り専用プロジェクトを作成する前に、ステートマシンを確認できます。 AWS CloudFormation を に AWS アカウント.

    ステートマシンの定義を表示でき、準備ができたら、デプロイと実行を選択してプロジェクトをデプロイし、リソースを作成します。

    デプロイでは、リソースとアクセス許可の作成に最大 10 分かかる場合があります。スタック ID リンクを使用して、 の進行状況をモニタリングできます。 AWS CloudFormation.

    デプロイが完了すると、コンソールに新しいステートマシンが表示されます。

  2. 構築 – ワークフロー定義を確認して編集できます。カスタムワークフローの実行を試みる前に、サンプルプロジェクトのプレースホルダーの値を設定する必要がある場合があります。

注記

アカウントにデプロイされたサービスには、標準料金が適用される場合があります。

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

すべてのリソースをプロビジョニングしてデプロイしたら、ステートマシンを実行できます。

  1. [ステートマシン] ページで、サンプルプロジェクトを選択します。

  2. サンプルプロジェクトページで、[実行を開始] を選択します。

  3. [実行を開始] ダイアログボックスで、以下の操作を行います。

    1. (オプション) サンプルプロジェクトを実行するには、 JSON形式で入力値を入力します。

      [デモの実行] を選択した場合、実行入力を入力する必要はありません。

      注記

      デプロイしたデモプロジェクトに事前入力された実行入力データが含まれている場合は、その入力を使用してステートマシンを実行します。

    2. [実行のスタート] を選択します。

    3. (オプション) Step Functions コンソールから実行 ID のタイトルが付いたページが表示されます。このページは、[実行の詳細] ページと呼ばれます。このページでは、実行の進行中または完了後に実行結果を確認できます。

      実行が完了したら、[グラフビュー] で個々のステートを選択し、ステップの詳細 ペインの個々のタブを選択すると、入力、出力、定義などの各ステートの詳細がそれぞれ表示されます。

      • [実行の詳細] ページに表示できる実行情報の詳細については、「実行の詳細の概要」を参照してください。

      • 分散マップ状態の実行をコンソールに表示する方法の詳細については、「マップ実行の表示」を参照してください。

    4. (オプション) Amazon S3 バケットにエクスポートされた実行結果を確認します。これらの結果には、実行の入力と出力、、ARN実行ステータスなどのデータが含まれます。詳細については、「ResultWriter (マップ)」を参照してください。