インラインマップ状態を使用して Step Functions でアクションを繰り返す - AWS Step Functions

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

インラインマップ状態を使用して Step Functions でアクションを繰り返す

このチュートリアルでは、インラインモードで Map 状態を使用する方法を説明します。ワークフローで、インラインマップステートを使用してアクションを繰り返し実行します。インラインモードの詳細については、「インラインモードのマップステート」を参照してください。

このチュートリアルでは、インラインマップ状態を使用して、バージョン 4 の汎用一意識別子 (v4) を繰り返し生成しますUUID。まず、Workflow Studio で 2 つの ワークフロー状態を渡す ステートと 1 つのインラインマップステートを含むワークフローを作成します。次に、 Map状態の入力JSON配列を含む入力と出力を設定します。Map 状態は、入力配列内の各項目に対してUUIDs生成された v4 を含む出力配列を返します。

ステップ 1: ワークフロープロトタイプを作成する

このステップでは、Workflow Studio を使用してワークフロープロトタイプを作成します。Workflow Studio は、Step Functions コンソールで使用可能なビジュアルワークフローデザイナーです。[フロー] タブから必要な状態を選択し、Workflow Studio のドラッグアンドドロップ機能を使用してワークフロープロトタイプを作成します。

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

  2. [テンプレートを選択] ダイアログボックスで [空白] を選択します。

  3. 選択 を選択して、 で Workflow Studio を開きますデザインモード

  4. [フロー] タブで、[パス] 状態をドラッグし、[最初の状態をここにドラッグ] とラベル付けされた空の状態にドロップします。

  5. [マップ] 状態をドラッグして、[パス] 状態の下にドロップします。[マップ] 状態の名前を Map demo に変更します。

  6. 2 つ目の [パス] 状態をドラッグして [マップデモ] 状態の中にドロップします。

  7. 2 つ目の [パス] 状態の名前を Generate UUID に変更します。

ステップ 2: 入力と出力を構成する

このステップでは、ワークフロープロトタイプのすべての状態に対する入力と出力を設定します。まず、最初の [パス] 状態を使用して、ワークフローに固定データを挿入します。[パス] 状態は、このデータを [マップデモ] 状態への入力として渡します。この入力の中で、[マップデモ] 状態が反復処理する必要がある入力配列を含むノードを指定します。次に、マップデモ状態を繰り返して v4 を生成するステップを定義しますUUIDs。最後に、反復するごとに返される出力を構成します。

  1. ワークフロープロトタイプの最初の [パス] 状態を選択します。[出力] タブで、[結果] に次のものを入力します。

    { "foo": "bar", "colors": [ "red", "green", "blue", "yellow", "white" ] }
  2. [マップデモ] 状態を選択し、[構成]タブで次の操作を行います。

    1. [項目配列へのパスを指定] を選択します。

    2. 次の [リファレンスパス] を指定して、入力配列を含むノードを選択します。

      $.colors
  3. 生成UUID状態を選択し、入力タブで次の操作を行います。

    1. [Parameters を使用して入力を変換] を選択します。

    2. 次のJSON入力を入力して、入力配列項目UUIDsごとに v4 を生成します。States.UUID 組み込み関数を使用して を生成しますUUIDs。

      { "uuid.$": "States.UUID()" }
  4. 生成UUID状態で、出力タブを選択し、以下を実行します。

    1. で出力をフィルタリングを選択します OutputPath

    2. 次の参照パスを入力して、出力配列項目を含むJSONノードを選択します。

      $.uuid

ステップ 3: 自動生成された定義を確認して保存する

フローパネルからキャンバスに状態をドラッグアンドドロップすると、Workflow Studio はワークフローの Amazon ステートメント言語 (ASL) 定義をリアルタイムで自動的に作成します。この定義は、必要に応じて編集できます。

  1. (オプション) Inspector パネル パネルの [定義] を選択すると、ワークフローの自動生成された Amazon States Language の定義が表示されます。

    ヒント

    Workflow Studio コードエディタの でASL定義を表示することもできます。コードエディタでは、ワークフローASLの定義を編集することもできます。

    次の例は、ワークフロー用に自動的に生成された Amazon States Language の定義を示しています。

    { "Comment": "Using Map state in Inline mode", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "Map demo", "Result": { "foo": "bar", "colors": [ "red", "green", "blue", "yellow", "white" ] } }, "Map demo": { "Type": "Map", "ItemsPath": "$.colors", "ItemProcessor": { "ProcessorConfig": { "Mode": "INLINE" }, "StartAt": "Generate UUID", "States": { "Generate UUID": { "Type": "Pass", "End": true, "Parameters": { "uuid.$": "States.UUID()" }, "OutputPath": "$.uuid" } } }, "End": true } } }
  2. ステートマシンの名前を指定します。これを行うには、デフォルトのステートマシン名 の横にある編集アイコンを選択しますMyStateMachine。次に、[ステートマシンの設定][ステートマシン名] ボックスに名前を指定します。

    このチュートリアルでは、名前として「InlineMapDemo」と入力します。

  3. (オプション) [ステートマシンの設定] で、ステートマシンのタイプや実行ロールなど、他のワークフロー設定を指定します。

    このチュートリアルでは、[ステートマシンの設定] のデフォルト設定をすべてそのまま使用します。

  4. [ロールの作成を確認] ダイアログボックスで、[確認] を選択して続行します。

    [ロールの設定を表示] を選択して [ステートマシンの設定] に戻ることもできます。

    注記

    Step Functions が作成するIAMロールを削除した場合、Step Functions は後で再作成できません。同様に、ロールを変更した場合 (IAMポリシー内のプリンシパルから Step Functions を削除した場合など)、Step Functions は後で元の設定を復元できません。

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

ステートマシンの実行は、ワークフローを実行してタスクを実施するインスタンスです。

  1. InlineMapDemo ページで、実行の開始 を選択します。

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

    1. (オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。

      非ASCII名前とログ記録

      Step Functions は、 ASCII以外の文字を含むステートマシン、実行、アクティビティ、およびラベルの名前を受け入れます。このような文字は Amazon では機能しないため CloudWatch、 でメトリクスを追跡できるようにASCII、文字のみを使用することをお勧めします CloudWatch。

    2. (オプション) 入力ボックスに、ワークフローを実行するための入力値を JSON形式で入力します。

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

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

      実行結果を確認するには、[グラフビュー] で個々の状態を選択し、ステップの詳細 ペインの個々のタブを選択すると、入力、出力、定義などの各状態の詳細がそれぞれ表示されます。[実行の詳細] ページに表示できる実行情報の詳細については、「実行の詳細の概要」を参照してください。

    実行入力と出力を表示するには side-by-side、実行入力と出力を選択します[出力] に、Map 状態から返された出力配列が表示されます。出力配列の例を次に示します。

    [ "a85cbc7b-4e65-4ac2-97af-80ed504adc1d", "b05bca11-d481-414e-aa9a-88285ec6590d", "f42d59f7-bd32-480f-b270-caddb518ce2a", "15f18616-517d-4b69-b7c3-bf22222d2efd", "690bcfee-6d58-408c-a6b4-1995ccafdbd2" ]