API Gateway を使用して Step Functions API を作成する - AWS Step Functions

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

API Gateway を使用して Step Functions API を作成する

を使用して、Amazon API Gateway AWS Step Functions を APIs API のメソッドに関連付けることができます。API GatewayHTTPS リクエストが API メソッドに送信されると、API Gateway はお客様の Step Functions API アクションを呼び出します。

このチュートリアルでは、1 つのリソースと POST メソッドを使用して StartExecution API アクションとやり取りする API を作成する方法を示します。AWS Identity and Access Management (IAM) コンソールを使用して API Gateway 用のロールを作成します。次に、API Gateway コンソールを使用して API Gateway API を作成し、リソースとメソッドを作成して、メソッドを StartExecution API アクションにマッピングします。最後に、API をデプロイしてテストします。この API アクションの詳細については、StartExecution の「」を参照してください。AWS Step Functions API Reference

注記

Amazon API Gateway は StartExecution を呼び出して Step Functions の実行を開始できますが、結果を取得するには DescribeExecution を呼び出す必要があります。

ステップ 1: の IAM ロールを作成するAPI Gateway

API Gateway API を作成する前に、API Gateway に Step Functions API アクションを呼び出すアクセス許可を付与する必要があります。

のアクセス許可を設定するにはAPI Gateway

  1. IAM コンソールにサインインして、[ロール]、[ロールの作成] の順に選択します。

  2. [信頼されたエンティティの種類を選択] ページの [AWS service] で、リストから [API Gateway] を選択し、[Next:] を選択します。アクセス許可。

  3. [Attached permissions policy] ページで、[Next:] を選択します。 確認.

  4. [Review] ページで、[APIGatewayToStepFunctionsRole name] に と入力し、[Create role] を選択します。

    ロールのリストで、IAM ロールが表示されます。

  5. 次の例に示すように、お客様のロールの名前を選択し、[ロール ARN] をメモします。

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions

IAM ロールにポリシーをアタッチするには

  1. [ロール] ページで、ロール (APIGatewayToStepFunctions) を検索して選択します。

  2. [Permissions] タブで [Attach Policy] を選択します。

  3. [Attach Policy] ページで AWSStepFunctionsFullAccess を検索し、ポリシーを選択して、[Attach Policy] を選択します。

ステップ 2: API を作成するAPI Gateway

IAM ロールを作成した後、カスタムの API Gateway API を作成できます。

API を作成するには

  1. Amazon API Gateway コンソールに移動し、[Get Started (使用を開始)] を選択します。

  2. [Create new API] ページで、[New API] を選択します。

  3. [設定] セクションで、[StartExecutionAPIAPI 名] に と入力し、[API の作成] を選択します。

リソースを作成するには

  1. の [リソース] ページ StartExecutionAPI] で、[Actions]、[Create Resource] の順に選択します。

  2. [New Child Resource] ページで、[executionResource Name] に と入力し、[Create Resource] を選択します。

POST メソッドを作成するには

  1. [/execution Methods] ページで、[Actions]、[Create Method] の順に選択します。

  2. リストから POST を選択し、チェックマークをオンにします。

メソッドの統合ポイントを設定するには

  1. [/execution - POST - Setup] ページの [統合タイプ] で、[サービス] を選択します。AWS

  2. [AWS リージョン] でリストからリージョンを選択します。

    注記

    現在 Step Functions をサポートしているリージョンについては、「サポートされているリージョン」を参照してください。

  3. [AWS Service] でリストから [Step Functions] を選択します。

  4. [HTTP Method] でリストから [POST] を選択します。

    注記

    すべての Step Functions API アクションは HTTP POST メソッドを使用します。

  5. [Action Type] で、[Use action name] を選択します。

  6. [Action (アクション)] に「StartExecution」と入力します。

  7. 次の例に示すように、[Execution Role (実行ロール)] に、前に作成した IAM ロールのロール ARN を入力します。

    arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
  8. [Save] を選択します。

    API Gateway および Step Functions 間の視覚的なマッピングは [/execution - POST - Method Execution] ページに表示されます。

ステップ 3: API のテストとデプロイAPI Gateway

API を作成したら、テストしてデプロイします。

API Gateway と Step Functions 間の通信をテストするには

  1. [/execution - POST - Method Execution] ページで、[Test] を選択します。

  2. [/execution - POST - Method Test] ページで、次のリクエストパラメータを、既存のステートマシン (または新しいステートマシンを作成) の ARN を使用して [Request Body] セクションにコピーし、[Test] を選択します。

    { "input": "{}", "name": "MyExecution", "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }
    注記

    詳細については、StartExecutionhttps://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html#API_StartExecution_RequestSyntax AWS Step Functions API Referenceリクエストの構文を参照してください。

    ステートマシンの ARN を API Gateway 呼び出しの本文に含めない場合は、次の例に示すように、本文マッピングテンプレートを設定できます。

    { "input": "$util.escapeJavaScript($input.json('$'))", "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld" }

    このアプローチを使用することで、開発ステージ (たとえば、devtestprod) に基づいて異なるステートマシンを使用できます。更新をリリースするには、次の例に示すように、ステージ変数を変更するだけです。

    { "input": "$util.escapeJavaScript($input.json('$'))", "stateMachineArn": "$util.escapeJavaScript($stageVariables.get(arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld))" }
  3. 実行が開始され、実行 ARN とそのエポック日が [Response Body] の下に表示されます。

    { "executionArn": "arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution", "startDate": 1486768956.878 }
    注記

    AWS Step Functions コンソールでステートマシンを選択することで、実行を確認できます。

API をデプロイするには

  1. の [リソース] ページ StartExecutionAPI] で、[Actions]、[Deploy API] を選択します。

  2. [API のデプロイ] ダイアログボックスで、[デプロイされるステージ] リストから [新しいステージ] を選択し、[alphaステージ名] に「」と入力して、[デプロイ] を選択します。

デプロイをテストするには

  1. の [ステージ] ページ StartExecutionAPI] で、[alpha]、[/]、[/execution]、[POST] を展開します。

  2. [alpha - POST - /execution] ページで、次の例に示すように、[Invoke URL (呼び出し URL)] をメモします。

    https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
  3. コマンドラインから、ステートマシンの ARN を使用して curl コマンドを実行し、次の例に示すようにデプロイの URL を呼び出します。

    curl -X POST -d '{"input": "{}","name": "MyExecution","stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld"}' https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution

    次の例に示すように、実行 ARN とそのエポック日付が返されます。

    {"executionArn":"arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution","startDate":1.486772644911E9}