チュートリアル: AWS Step Functions Workflow Studio 使用を学ぶ - AWS Step Functions

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

チュートリアル: AWS Step Functions Workflow Studio 使用を学ぶ

このチュートリアルでは、 AWS Step Functions用 Workflow Studio の基本的な使用方法を学習します。Workflow Studio の デザインモード で、PassChoiceFailWaitParallel などの複数の状態を含むステートマシンを作成します。ドラッグアンドドロップ機能を使用して、これらの状態を検索、選択、設定します。次に、自動生成されたワークフローの Amazon ステートメント言語 (ASL) 定義が表示されます。また、Workflow Studio の コードモード を使用して、ワークフロー定義を編集します。その後、Workflow Studio を終了してステートマシンを実行し、実行の詳細を確認します。

このチュートリアルでは、ステートマシンを更新し、実行出力の変更を確認する方法についても学習します。最後に、クリーンアップステップを実行し、ステートマシンを削除します。

このチュートリアルを完了すると、Workflow Studio を使用して、[デザイン] モードと [コード] モードの両方を使用してワークフローを作成および構成する方法を習得できます。また、ステートマシンを更新、実行、削除する方法も習得できます。

注記

開始する前に、このチュートリアルの前提条件を必ず完了してください。

ステップ 1: Workflow Studio に移動する

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

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

  3. [選択] を選びます。これにより、デザインモード で Workflow Studio が開きます。

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

Workflow Studio では、ステートマシンはワークフローをグラフィカルに表示したものです。Workflow Studio を使用して、ワークフローの個々のステップを定義、設定、および検証できます。次のステップでは、Workflow Studio の デザインモード を使用してステートマシンを作成します。

ステートマシンを作成するには
  1. Workflow Studio が[デザイン] モードになっていることを確認してください。

  2. 左側の [State browser] (状態ブラウザ) で、[フロー] タブを選択します。次に、[パス] 状態を [最初の状態をここにドラッグ] とラベル付けされた空の状態にドラッグします。

  3. [フロー] タブから [選択] 状態をドラッグし、[パス] 状態の下にドロップします。

  4. [状態名] のデフォルト名を [選択] に置き換えます。このチュートリアルでは、名前に IsHelloWorldExample を使用します。

  5. 別の Pass ステートをドラッグして、IsHelloWorldExampleそのステートの 1 つのブランチにドロップします。次に、Fail ステートをドラッグして、ステートのもう一方のブランチの下にドロップします。IsHelloWorldExample

  6. [パス (1)] 状態を選択し、その名前を Yes に変更します。[失敗] 状態の名前を No に変更します。

  7. boolean IsHelloWorldExample変数を使用してステートの分岐ロジックを指定します。IsHelloWorldExample

    IsHelloWorldExampleFalse の場合、ワークフローは [No] 状態を入力します。それ以外は、ワークフローは [Yes] 状態で実行フローを継続します。

    分岐ロジックを定義するには、次の手順を実行します。

    1. IsHelloWorldExampleでステートを選択しキャンバス、「Choice Rules」の「Rule #1」ボックスにある編集アイコンを選択して、最初の選択肢ルールを定義します

    2. [条件を追加] を選択します。

    3. [ルール #1 の条件] ダイアログボックスで、[変数]$.IsHelloWorldExample を入力します。

    4. [演算子] で、[次と等しい] を選択します。

    5. [値][ブール定数] を選択し、ドロップダウンリストから [true] を選択します。

    6. [条件を保存する] を選択します。

    7. [次の状態:] ドロップダウンリストで [Yes] が選択されていることを確認します。

    8. [新しい選択ルールを追加] を選択し、次に [条件を追加] を選択します。

    9. [ルール #2] ボックスで、サブステップ 7.c から 7.f を繰り返して、IsHelloWorldExample 変数の値が [false] のときの 2 番目の選択ルールを定義します。ステップ 7.e では、[true] の代わりに [false] を選択します。

    10. [ルール #2] ボックスで、[次の状態:] ドロップダウンリストから [No] を選択します。

    11. [デフォルトのルール] ボックスで、編集アイコンを選択してデフォルトの選択ルールを定義し、ドロップダウンリストから [Yes] を選択します。

  8. [Yes] 状態の後に [待機] 状態を追加し、Wait 3 sec という名前を付けます。次に、次の手順を実行して待機時間を 3 秒に設定します。

    1. [オプション] では、デフォルトの [一定の時間間隔を待機] のままにします。

    2. [秒][秒を入力] が選択されていることを確認し、ボックスに 3 を入力します。

  9. [3 秒間待機] 状態になったら、[並列] ステートを追加します。さらに 2 つの [パス] 状態を 2 つの分岐に追加します。最初の [パス] 状態に Hello という名前を付けます。2 つ目の [パス] 状態に World という名前を付けます。

    完了したワークフローは次のようになります。

    
            完了した IsHelloWorldExample ステートマシンのワークフロー。

ステップ 3: 自動生成された Amazon States Language 定義を確認する

[フロー] タブから状態をキャンバスにドラッグアンドドロップすると、Workflow Studio はワークフローの Amazon States Language (ASL) の定義を、リアルタイムで自動的に作成します。Inspector パネルで、[定義] トグルボタンを選択してこの定義を表示するか、コードモード に切り替えて、必要に応じてこの定義を編集します。ワークフロー定義の編集については、このチュートリアルのステップ 4 を参照してください。

  • (オプション) [Inspector] パネルで [定義] を選択し、ステートマシンのワークフローを表示します。

    次のサンプルコードは、ワークフロー用に自動的に生成された IsHelloWorldExample ステートマシンの Amazon States Language の定義を示しています。Workflow Studio で追加した Choice 状態は、ステップ 2 で定義した分岐ロジックに基づいて実行フローを決定するために使用されます。

    { "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "IsHelloWorldExample", "Comment": "A Pass state passes its input to its output, without performing work. Pass states are useful when constructing and debugging state machines." }, "IsHelloWorldExample": { "Type": "Choice", "Comment": "A Choice state adds branching logic to a state machine. Choice rules can implement 16 different comparison operators, and can be combined using And, Or, and Not\"", "Choices": [ { "Variable": "$.IsHelloWorldExample", "BooleanEquals": false, "Next": "No" }, { "Variable": "$.IsHelloWorldExample", "BooleanEquals": true, "Next": "Yes" } ], "Default": "Yes" }, "No": { "Type": "Fail", "Cause": "Not Hello World" }, "Yes": { "Type": "Pass", "Next": "Wait 3 sec" }, "Wait 3 sec": { "Type": "Wait", "Seconds": 3, "Next": "Parallel" }, "Parallel": { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "End": true } } } ] } } }

ステップ 4: コードモードでワークフローの定義を編集する

Workflow Studio の コードモードには、ワークフローの ASL 定義を表示および編集するための統合コードエディタが用意されています。

  1. [コード] を選択して、コードモードに切り替えます。

  2. [並列] 状態が定義されたら、カーソルを置いて Enter を押します。

  3. Ctrl+space を押すと、[並列] 状態の後に追加できる状態の一覧が表示されます。

  4. オプションの一覧から [パス状態] を選択します。コードエディタは、[パス状態] のボイラープレートコードを追加します。

  5. この状態を追加すると、ワークフロー定義にエラーが発生します。[並列] 状態の定義では、"End": true"Next": "PassState" に置き換えてください。

  6. 追加した [パス状態] の定義で、次の変更を実行します。

    1. [結果] ノードを削除します。

    2. "ResultPath": "$.result","Next": "NextState" を削除します。

    3. "Type": "Pass", の後で、"End": true と入力します。

    4. [パス状態] 定義の後で、, を追加します。

ワークフローの定義は、次のような定義になっているはずです。

{ "Comment": "A description of my state machine", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "IsHelloWorldExample" }, "IsHelloWorldExample": { "Type": "Choice", "Choices": [ { "Variable": "$.IsHelloWorldExample", "BooleanEquals": true, "Next": "Yes" }, { "Variable": "$.IsHelloWorldExample", "BooleanEquals": false, "Next": "No" } ], "Default": "Yes" }, "Yes": { "Type": "Pass", "Next": "Wait 3 seconds" }, "Wait 3 seconds": { "Type": "Wait", "Seconds": 3, "Next": "Parallel" }, "Parallel": { "Type": "Parallel", "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "End": true } } } ], "Next": "PassState" }, "PassState": { "Type": "Pass", "End": true }, "No": { "Type": "Fail" } } }

ステップ 5: ステートマシンを保存する

  1. Config more を選択するか、デフォルトのステートマシン名の横にある編集アイコンを選択しますMyStateMachine[ステートマシンの設定] で、名前を指定します。たとえば、HelloWorld と入力します。

  2. (オプション) ステートマシンのタイプや実行ロールなど、他のワークフロー設定を指定します。このチュートリアルでは、[ステートマシンの設定] のデフォルト設定をすべてそのまま使用します。

  3. [作成] を選択します。

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

    [ロールの設定を表示] を選択して、[設定] モードに戻ることもできます。

[設定] モードについての詳細は、「Workflow Studio の設定モード」を参照してください。

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

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

  1. ステートマシンページでHelloWorldステートマシンを選択します。

  2. HelloWorldページで [実行開始] を選択します。

  3. (オプション) 実行を識別するには、[名前] ボックスに名前を指定します。デフォルトでは、Step Functions は自動的に一意の実行名を生成します。

    注記

    Step Functions では、ステートマシン、実行、アクティビティの名前、および ASCII 以外の文字を含むラベルを作成できます。これらの非ASCII名は、Amazonでは機能しません。 CloudWatch CloudWatch メトリクスを追跡できるようにするには、ASCII 文字のみを使用する名前を選択してください。

  4. [入力] ボックスに、実行の入力値を JSON 形式で入力します。入力に基づいて、IsHelloWorldExample 変数は、どのステートマシンフローが実行されるかを決定します。ここでは、次の入力値を使用します。

    { "IsHelloWorldExample": true }
    注記

    実行入力の指定はオプションですが、このチュートリアルでは、上記の入力例と同様の実行入力を指定することが必要です。この入力値は、ステートマシンを実行する際に Choice 状態で参照されます。

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

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

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

    このチュートリアルでは、"IsHelloWorldExample": true の入力値を入力すると、次のような出力が表示されます。

    { "IsHelloWorldExample": true }, { "IsHelloWorldExample": true }

ステップ 7: ステートマシンを更新する

ステートマシンを更新すると、更新は結果に整合します。短時間のうちに、新しく開始したすべての実行にステートマシンの更新された定義が反映されます。現在実行中のすべての実行は、前の定義に基づいて完了します。

このステップでは、Workflow Studio の デザインモード モードでステートマシンを更新します。[パス] 状態に [World] という名前の Result フィールドを追加します。

  1. 実行 ID のタイトルのページで、[Edit state machine] (ステートマシンの編集) を選択します。

  2. [デザイン] モードになっていることを確認してください。

  3. キャンバスで [World] という名前の [パス] 状態を選択し、次に [出力] を選択します。

  4. [結果] ボックスに、"World has been updated!" と入力します。

  5. [保存] を選択します。

  6. (オプション) [定義] 領域では、ワークフローの更新された Amazon States Language の定義を表示します。

    { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "Result": "World has been updated!", "End": true } } } ], "Next": "PassState" }
  7. [実行] を選択します。

  8. 新しいタブで [実行を開始] ダイアログボックスを開き、次の実行入力を指定します。

    { "IsHelloWorldExample": true }
  9. [実行のスタート] を選択します。

  10. (オプション) [グラフビュー][World] ステップを選択し、次に [出力] を選択します。この出力は、「World が更新されました」です。

ステップ 8: クリーンアップする

ステートマシンを削除するには
  1. ナビゲーションメニューから、[State machines] (ステートマシン) を選択します。

  2. ステートマシン」ページで、を選択しHelloWorld、「削除」を選択します。

  3. [ステートマシンの削除] ダイアログボックスに、delete と入力して削除を確定します。

  4. [削除] をクリックします。

    正常に削除されると、緑色のステータスバーが画面の上部に表示されます。緑色のステータスバーには、ステートマシンが削除対象としてマークされていると書かれています。進行中のすべての実行が停止すると、ステートマシンは削除されます。

実行ロールを削除するには
  1. IAM 用 [Roles] (ロール) ページを開きます。

  2. Step Functions が作成した IAM ロールを選択します。たとえば、StepFunctions-HelloWorld-ロール例

  3. [Delete role] (ロールの削除) を選択します。

  4. [Yes, delete] (はい、削除します) を選択します。