翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Workflow Studio でステートマシンを設計する
このチュートリアルでは、 の Workflow Studio を使用するための基本について説明します。 AWS Step Functions。 Workflow Studio デザインモードの では、、、、Pass
、 Choice
Fail
Wait
など、複数の状態を含むステートマシンを作成しますParallel
。ドラッグアンドドロップ機能を使用して、これらの状態を検索、選択、設定します。次に、ワークフローの自動生成された Amazon ステートメント言語 (ASL) 定義を表示します。また、Workflow Studio の コードモード を使用して、ワークフロー定義を編集します。その後、Workflow Studio を終了してステートマシンを実行し、実行の詳細を確認します。
このチュートリアルでは、ステートマシンを更新し、実行出力の変更を確認する方法についても学習します。最後に、クリーンアップステップを実行し、ステートマシンを削除します。
このチュートリアルを完了すると、Workflow Studio を使用して、[デザイン] モードと [コード] モードの両方を使用してワークフローを作成および構成する方法を習得できます。また、ステートマシンを更新、実行、削除する方法も習得できます。
ステップ 1: Workflow Studio に移動する
-
Step Functions コンソール
を開き、[ステートマシンの作成] を選択します。 -
[テンプレートを選択] ダイアログボックスで [空白] を選択します。
-
選択 を選択して、 で Workflow Studio を開きますデザインモード。
ステップ 2: ステートマシンを作成する
Workflow Studio では、ステートマシンはワークフローをグラフィカルに表示したものです。Workflow Studio を使用して、ワークフローの個々のステップを定義、設定、および検証できます。次のステップでは、Workflow Studio の デザインモード を使用してステートマシンを作成します。
ステートマシンを作成するには
-
Workflow Studio が[デザイン] モードになっていることを確認してください。
-
左側の [State browser] (状態ブラウザ) で、[フロー] タブを選択します。次に、[パス] 状態を [最初の状態をここにドラッグ] とラベル付けされた空の状態にドラッグします。
-
[フロー] タブから [選択] 状態をドラッグし、[パス] 状態の下にドロップします。
-
[状態名] のデフォルト名を [選択] に置き換えます。このチュートリアルでは、名前に
IsHelloWorldExample
を使用します。 -
別のパス状態をドラッグして、IsHelloWorldExample状態の 1 つのブランチにドロップします。次に、失敗状態をドラッグして、IsHelloWorldExample状態の他のブランチの下にドロップします。
-
[パス (1)] 状態を選択し、その名前を
Yes
に変更します。[失敗] 状態の名前をNo
に変更します。 -
ブール変数 を使用して、IsHelloWorldExample状態の分岐ロジックを指定します
IsHelloWorldExample
。IsHelloWorldExample
がFalse
の場合、ワークフローは [No] 状態を入力します。それ以外は、ワークフローは [Yes] 状態で実行フローを継続します。分岐ロジックを定義するには、次の手順を実行します。
-
でIsHelloWorldExample状態を選択しCanvas とワークフローグラフ、ルールの選択でルール #1 ボックスの編集アイコンを選択して、最初の選択ルールを定義します。
-
[条件を追加] を選択します。
-
[ルール #1 の条件] ダイアログボックスで、[変数] に
$.IsHelloWorldExample
を入力します。 -
[演算子] で、[次と等しい] を選択します。
-
[値] で [ブール定数] を選択し、ドロップダウンリストから [true] を選択します。
-
[条件を保存する] を選択します。
-
[次の状態:] ドロップダウンリストで [Yes] が選択されていることを確認します。
-
[新しい選択ルールを追加] を選択し、次に [条件を追加] を選択します。
-
[ルール #2] ボックスで、サブステップ 7.c から 7.f を繰り返して、
IsHelloWorldExample
変数の値が [false] のときの 2 番目の選択ルールを定義します。ステップ 7.e では、[true] の代わりに [false] を選択します。 -
[ルール #2] ボックスで、[次の状態:] ドロップダウンリストから [No] を選択します。
-
[デフォルトのルール] ボックスで、編集アイコンを選択してデフォルトの選択ルールを定義し、ドロップダウンリストから [Yes] を選択します。
-
-
[Yes] 状態の後に [待機] 状態を追加し、
Wait 3 sec
という名前を付けます。次に、次の手順を実行して待機時間を 3 秒に設定します。-
[オプション] では、デフォルトの [一定の時間間隔を待機] のままにします。
-
[秒] で [秒を入力] が選択されていることを確認し、ボックスに
3
を入力します。
-
-
[3 秒間待機] 状態になったら、[並列] ステートを追加します。さらに 2 つの [パス] 状態を 2 つの分岐に追加します。最初の [パス] 状態に
Hello
という名前を付けます。2 つ目の [パス] 状態にWorld
という名前を付けます。完了したワークフローは次の図のようになります。
ステップ 3: 自動生成された Amazon States Language 定義を確認する
フロータブからキャンバスに状態をドラッグアンドドロップすると、Workflow Studio はワークフローの Amazon ステートメント言語 (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の定義を表示および編集するための統合コードエディタが用意されています。
-
[コード] を選択して、コードモードに切り替えます。
-
[並列] 状態が定義されたら、カーソルを置いて
Enter
を押します。 -
Ctrl+space
を押すと、[並列] 状態の後に追加できる状態の一覧が表示されます。 -
オプションの一覧から [パス状態] を選択します。コードエディタは、[パス状態] のボイラープレートコードを追加します。
-
この状態を追加すると、ワークフロー定義にエラーが発生します。[並列] 状態の定義では、
"End": true
を
に置き換えてください。"Next": "PassState"
-
追加した [パス状態] の定義で、次の変更を実行します。
-
[結果] ノードを削除します。
-
"ResultPath": "$.result",
と"Next": "NextState"
を削除します。 -
"Type": "Pass",
の後で、
と入力します。"End": true
-
[パス状態] 定義の後で、
,
を追加します。
-
ワークフローの定義は、次のような定義になっているはずです。
{
"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: ステートマシンを保存する
-
Config more を選択するか、デフォルトのステートマシン名 の横にある編集アイコンを選択しますMyStateMachine。[ステートマシンの設定] で、名前を指定します。たとえば、
HelloWorld
と入力します。 -
(オプション) ステートマシンのタイプや実行ロールなど、他のワークフロー設定を指定します。このチュートリアルでは、[ステートマシンの設定] のデフォルト設定をすべてそのまま使用します。
-
[Create] (作成) を選択します。
-
[ロールの作成を確認] ダイアログボックスで、[確認] を選択して続行します。
[ロールの設定を表示] を選択して、[設定] モードに戻ることもできます。
[設定] モードについての詳細は、「Workflow Studio の設定モード」を参照してください。
ステップ 6: ステートマシンを実行する
ステートマシンの実行は、ワークフローを実行してタスクを実施するインスタンスです。
-
ステートマシンページで、HelloWorldステートマシンを選択します。
-
HelloWorld ページで、実行の開始 を選択します。
-
(オプション) 生成されたデフォルトを上書きするカスタム実行名を入力します。
非ASCII名前とログ記録
Step Functions は、 ASCII以外の文字を含むステートマシン、実行、アクティビティ、およびラベルの名前を受け入れます。このような文字は Amazon では機能しないため CloudWatch、 でメトリクスを追跡できるようにASCII、文字のみを使用することをお勧めします CloudWatch。
-
入力ボックスに、実行の入力値を JSON形式で入力します。入力に基づいて、
IsHelloWorldExample
変数は、どのステートマシンフローが実行されるかを決定します。ここでは、次の入力値を使用します。{ "IsHelloWorldExample": true }
注記
実行入力の指定はオプションですが、このチュートリアルでは、上記の入力例と同様の実行入力を指定することが必要です。この入力値は、ステートマシンを実行する際に
Choice
状態で参照されます。 -
[実行のスタート] を選択します。
-
Step Functions コンソールから実行 ID のタイトルが付いたページが表示されます。このページは、[実行の詳細] ページと呼ばれます。このページでは、実行の進行中または完了後に実行結果を確認できます。
実行結果を確認するには、[グラフビュー] で個々の状態を選択し、ステップの詳細 ペインの個々のタブを選択すると、入力、出力、定義などの各状態の詳細がそれぞれ表示されます。[実行の詳細] ページに表示できる実行情報の詳細については、「実行の詳細の概要」を参照してください。
このチュートリアルでは、
"IsHelloWorldExample": true
の入力値を入力すると、次のような出力が表示されます。{ "IsHelloWorldExample": true }, { "IsHelloWorldExample": true }
ステップ 7: ステートマシンを更新する
ステートマシンを更新すると、更新は結果に整合します。短時間のうちに、新しく開始したすべての実行にステートマシンの更新された定義が反映されます。現在実行中のすべての実行は、前の定義に基づいて完了します。
このステップでは、Workflow Studio の デザインモード モードでステートマシンを更新します。[パス] 状態に [World] という名前の Result
フィールドを追加します。
-
実行 ID のタイトルのページで、[Edit state machine] (ステートマシンの編集) を選択します。
-
[デザイン] モードになっていることを確認してください。
-
キャンバスで [World] という名前の [パス] 状態を選択し、次に [出力] を選択します。
-
[結果] ボックスに、
"World has been updated!"
と入力します。 -
[Save] を選択します。
-
(オプション) [定義] 領域では、ワークフローの更新された 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" }
-
[実行] を選択します。
-
新しいタブで [実行を開始] ダイアログボックスを開き、次の実行入力を指定します。
{ "IsHelloWorldExample": true }
-
[実行のスタート] を選択します。
-
(オプション) [グラフビュー] で [World] ステップを選択し、次に [出力] を選択します。この出力は、「World が更新されました」です。
ステップ 8: クリーンアップする
ステートマシンを削除するには
-
ナビゲーションメニューから、[State machines] (ステートマシン) を選択します。
-
ステートマシンページで、 を選択しHelloWorld、削除 を選択します。
-
[ステートマシンの削除] ダイアログボックスに、
delete
と入力して削除を確定します。 -
[削除] を選択します。
正常に削除されると、緑色のステータスバーが画面の上部に表示されます。緑色のステータスバーには、ステートマシンが削除対象としてマークされていると書かれています。進行中のすべての実行が停止すると、ステートマシンは削除されます。
実行ロールを削除するには
-
のロールページ
を開きますIAM。 -
Step Functions が作成したIAMロールを選択します。例えば、StepFunctions-HelloWorld-role-EXAMPLE などです。
-
[Delete role] (ロールの削除) を選択します。
-
[Yes, delete] (はい、削除します) を選択します。