メニュー
AWS Step Functions
開発者ガイド

タスク

Task 状態 ("Type": "Task") は、ステートマシンによって実行される単一の作業単位を表します。

共通状態フィールドに加えて、Task 状態には次のフィールドがあります。

Resource (必須)

URI (特に、実行する特定のタスクを一意に識別する Amazon リソースネーム (ARN))

ResultPath(オプション)

Resource で指定されたタスクを実行した結果を配置する場所 (入力内) を指定します。その後、入力は OutputPath フィールド (ある場合) に従ってフィルタリングされてから状態の出力に使用されます。詳細については、「パス」を参照してください。

Retry(オプション)

Retrier と呼ばれるオブジェクトの配列。状態でランタイムエラーが発生した場合の再試行ポリシーを定義します。詳細については、「エラー後の再試行」を参照してください。

Catch(オプション)

Catcher と呼ばれるオブジェクトの配列。状態でランタイムエラーが発生し、再試行ポリシーがすでに試された後または定義されていない場合に実行されるフォールバック状態を定義します。詳細については、「フォールバック状態」を参照してください。

TimeoutSeconds(オプション)

指定した秒数よりも長時間タスクが実行されると、この状態は States.Timeout エラー名で失敗します。ゼロ以外の正の整数にする必要があります。指定しない場合、デフォルト値は 99999999 です。

HeartbeatSeconds(オプション)

タスクからのハートビートの間隔が指定された秒数よりも長時間経過した場合、このタスクは States.Timeout エラー名で失敗します。0 以外の正の整数である必要があり、TimeoutSeconds フィールドに指定された秒数よりも小さい必要があります。指定しない場合、デフォルト値は 99999999 です。

Task 状態は、その状態で実行が終了する場合は End フィールドが true に設定されている必要があります。または、Next フィールドに、Task 状態が完了した際に実行される状態を指定する必要があります。

例を示します。

"ActivityState": { "Type": "Task", "Resource": "arn:aws:states:us-east-1:123456789012:activity:HelloWorld", "TimeoutSeconds": 300, "HeartbeatSeconds": 60, "Next": "NextState" }

この例では、ActivityState は呼び出し元の AWS アカウントの us-east-1 リージョンで HelloWorld を実行するアクティビティをスケジュールします。HelloWorld が完了すると、次の状態 (ここでは NextState と呼ばれます) が実行されます。

このタスクが 300 秒以内に完了しなかった場合、または 60 秒間隔のハートビート通知を送信しなかった場合、タスクは failed とマークされます。長時間実行されるアクティビティでは、タイムアウト値とハートビート間隔を設定することをお勧めします。

タスクのリソース ARN の指定

Resource フィールドの Amazon リソースネーム(ARN) は次のパターンを使用して指定します。

arn:partition:service:region:account:task_type:name

各パラメーターの意味は次のとおりです。

  • partition は使用する AWS Step Functions のパーティションです。最も一般的に使用されるのは aws です。

  • service はタスクの実行に使用される AWS のサービスを示します。以下のいずれかです。

  • region は、Step Functions アクティビティ/ステートマシンタイプまたは Lambda 関数が作成された AWS リージョンです。

  • account はお客様の AWS アカウント ID です。

  • task_type は実行するタスクのタイプです。次のいずれかの値になります。

  • name は登録されたリソース名 (アクティビティまたは Lambda 関数名) です。

注記

Step Functions はパーティション間で参照する ARN はサポートされていません (たとえば、「aws-cn」がパーティション「aws」のタスクを呼び出すことはできません。その逆も同様です)。

タスクタイプ

以下のタスクタイプがサポートされています。

次のセクションでは、各タイプの詳細を示します。

アクティビティ

アクティビティは、お客様によって実装およびホストされ、特定のタスクを実行するワーカー (プロセスまたはスレッド) を示します。

アクティビティ resource ARN は以下の構文を使用します。

arn:partition:states:region:account:activity:name

これらのフィールドの詳細については、「タスクのリソース ARN の指定」を参照してください。

注記

アクティビティは、最初に使用する前に Step Functions で作成しておく必要があります (CreateActivity、API アクション、または Step Functions コンソールを使用)。

アクティビティの作成とワーカーの実装の詳細については、「アクティビティ」を参照してください。

Lambda 関数

Lambda 関数は AWS Lambda を使用して関数を実行します。Lambda 関数を指定するには、Resource フィールドに Lambda 関数の ARN を使用します。

Lambda 関数 Resource ARN は以下の構文を使用します。

arn:partition:lambda:region:account:function:function_name

これらのフィールドの詳細については、「タスクのリソース ARN の指定」を参照してください。

以下に例を示します。

"LambdaState": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:HelloWorld", "Next": "NextState" }

Resource フィールドに指定された Lambda 関数が完了すると、その出力が Next フィールド (「NextState」) で指定された状態に送信されます。