翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このサンプルプロジェクトでは、分散マップ状態を使用して大規模なデータを処理する方法を示します。例えば、過去の気象データを分析し、地球上で毎月の平均気温が最も高い気象観測所を特定します。気象データは 12,000 を超える CSV ファイルに記録され、Amazon S3 バケットに保存されています。
このサンプルプロジェクトには、[分散 S3 コピー NOA データ] と [ProcessNOAAData] という名前の 2 つの分散マップ状態が含まれています。[分散 S3 コピー NOA データ] は、[noaa-gsod-pds] という名前のパブリック Amazon S3 バケット内の CSV ファイルを繰り返し処理し、それらを AWS アカウントの Amazon S3 バケットにコピーします。[ProcessNOAAData] はコピーされたファイルを繰り返し処理し、温度分析を実行する Lambda 関数を含めます。
サンプルプロジェクトでは、まず ListObjectsV2 API アクションを呼び出して Amazon S3 バケットの内容を確認します。この呼び出しに応答して返されたキーの数に基づいて、サンプルプロジェクトでは以下のいずれかの判断を行います。
-
キー数が 1 以上の場合、プロジェクトは [ProcessNOAAData] ステートに移行します。この分散マップ状態には、毎月の平均気温が最も高い気象観測所を検索する [TemperatureFunction] という名前の Lambda 関数が含まれています。この関数は、キーとして
year-month
を含む辞書と、値として気象観測所に関する情報を含む辞書を返します。 -
返されるキー数が 1 を超えない場合、[Distributed S3 コピーの NOA データ] ステートにはパブリックバケット [noaa-gsod-pds] のすべてのオブジェクトが一覧表示され、個々のオブジェクトはアカウント内の別のバケットに 100 件ずつ繰り返しコピーされます。インラインマップはオブジェクトの反復コピーを実行します。
すべてのオブジェクトがコピーされると、プロジェクトは [ProcessNOAAData] ステートに移行して気象データを処理します。
サンプルプロジェクトは最終的にリデューサー Lambda 関数に移行します。リデューサー関数は [TemperatureFunction] 関数によって返された結果を最終的に集計し、結果を Amazon DynamoDB テーブルに書き込みます。
分散マップを使用すると、同時に最大 10,000 件の子ワークフローを並列実行できます。このサンプルプロジェクトでは、[ProcessNOAAData] 分散マップの最大同時実行数は 3000 件に設定されており、子ワークフローの並列実行数は 3000 件に制限されています。
このサンプルプロジェクトでは、ステートマシンとサポート AWS リソースを作成し、関連する IAM アクセス許可を設定します。このサンプルプロジェクトについて調べ、分散マップを使用して大規模な並列ワークロードをオーケストレーションしたり、独自のプロジェクトの出発点として使用したりする方法について説明します。
重要
このサンプルプロジェクトは米国東部 (バージニア北部) リージョン限定で利用できます。
ステップ 1: ステートマシンを作成する
-
Step Functions コンソール
を開き、[ステートマシンの作成] を選択します。 -
使用するスターターテンプレートを見つけて選択します。[次へ] を選択して続行します。
-
[デモの実行] を選択して読み取り専用ですぐにデプロイできるワークフローを作成するか、[その上に構築する] を選択して編集可能なステートマシン定義を作成し、構築した後にデプロイできます。
-
[テンプレートの使用] を選択して選択を続行します。
次のステップは、前の選択によって異なります。
-
デモの実行 – によって AWS CloudFormation にデプロイされたリソースを使用して読み取り専用プロジェクトを作成する前に、ステートマシンを確認できます AWS アカウント。
ステートマシン定義を表示し、準備ができたら、[デプロイと実行] を選択してプロジェクトをデプロイし、リソースを作成します。
デプロイには、リソースとアクセス許可の作成に最大 10 分かかる場合があります。スタック ID リンクを使用して、 AWS CloudFormationの進行状況をモニタリングできます。
デプロイが完了すると、コンソールに新しいステートマシンが表示されます。
-
その上に構築する - ワークフロー定義を確認して編集できます。カスタムワークフローの実行を試みる前に、サンプルプロジェクト内のプレースホルダーの値を設定する必要がある場合があります。
注記
アカウントにデプロイされたサービスには、Standard 料金が適用される場合があります。
ステップ 2: ステートマシンを実行する
[ステートマシン] ページで、サンプルプロジェクトを選択します。
サンプルプロジェクトページで、[実行を開始] を選択します。
[実行を開始] ダイアログボックスで、以下の操作を行います。
-
(オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。
非 ASCII 名とログ記録
Step Functions では、ステートマシン、実行、アクティビティ、ラベルに、ASCII 以外の文字を含む名前を使用できます。このような文字は Amazon CloudWatch では機能しないため、CloudWatch でメトリクスを追跡できるように ASCII 文字のみを使用することをお勧めします。
-
(オプション) [入力] ボックスに、入力値を JSON として入力します。デモを実行している場合は、このステップをスキップできます。
-
[実行のスタート] を選択します。
Step Functions コンソールから [実行の詳細] ページに移動し、[グラフビュー] で状態を選択して [ステップの詳細] ペインの関連情報を確認できます。
-
お疲れ様でした。
これで、実行中のデモまたはカスタマイズできるステートマシン定義のいずれかが完成しました。