コンテンツにスキップ

Step Functions@AWSリソース

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. Step Functionsとは

AWSサービスを組み合わせて、ワークフローエンジンを作成できる。


02. セットアップ

AWSリソースのAPIコール

▼ APIコールできるリソース

▼ AWS Lambda

*実装例*

{
  "StartAt": "Call AWS Lambda",
  "States":
    {
      "Call AWS Lambda":
        {
          "Type": "Task",
          "Resource": "arn:aws:states:::lambda:invoke.waitForTaskToken",
          "Parameters":
            {
              "FunctionName": "arn:aws:lambda:ap-northeast-1:<AWSアカウントID>:foo-function:1",
            },
          "Retry":
            [{"ErrorEquals": ["<再試行の対象とするエラー>"], "MaxAttempts": 0}],
          "End": "true",
          "Comment": "The state that call AWS Lambda",
        },
    },
}


AWS API Gatewayとの連携

▼ 注意が必要な項目

設定値 補足
HTTPメソッド POST GETメソッドでは動作しない。
アクション StartExecution
実行ロール IAMロールのARN StartExecutionを許可する。
{
  "Version": "2012-10-17",
  "Statement":
    [
      {
        "Effect": "Allow",
        "Action": "states:StartExecution",
        "Resource": "arn:aws:states:*:<AWSアカウントID>:stateMachine:*",
      },
    ],
}

▼ レスポンス構造

以下がレスポンスされれば、AWS API GatewayがStep Functionsをコールできたことになる。

{
  "executionArn": "arn:aws:states:ap-northeast-1:<AWSアカウントID>:execution:prd-foo-doing-state-machine:*****",
  "startDate": 1.638244285498E9,
}