API Gateway を使用したStep Functions API の作成 - AWS Step Functions

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

API Gateway を使用したStep Functions API の作成

Amazon API Gateway を使用して、AWS Step FunctionsAPI Gateway API のメソッドを持つ API。HTTPS リクエストが API メソッドに送信されると、API Gateway はStep Functions API アクションを呼び出します。

このチュートリアルでは、1 つのリソースと POST メソッドを使用して StartExecution API アクションとやり取りする API を作成する方法を示します。あなたが使用するAWS Identity and Access Management(IAM) コンソールを使用して、API Gateway のロールを作成します。次に、API Gateway コンソールを使用して API Gateway API を作成し、リソースとメソッドを作成して、メソッドをStartExecutionAPI アクション。最後に、API をデプロイしてテストします。この API アクションの詳細については、StartExecution()AWS Step FunctionsAPI リファレンス

注記

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

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

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

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

  1. にサインインします。IAM コンソールを選択し、ロール,ロールの作成

  2. リポジトリの []信頼されたエンティティのタイプを選択ページのAWSservice[] で、API Gateway[] リストから [] を選択します。次へ: アクセス許可.

  3. リポジトリの []アタッチされたアクセス許可ポリシーページで [] を選択します。次へ: タグ

  4. (オプション) [] で、タグを追加するページで、追加するタグを入力し、次へ: 確認.

  5. リポジトリの []確認ページで、APIGatewayToStepFunctionsforロール名[] を選択してから、ロールの作成

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

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

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

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

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

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

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

ステップ 2: API Gateway API を作成します。

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

API を作成するには

  1. を開くAmazon API Gateway コンソール

  2. リポジトリの []REST APIペインで [] を選択します。をビルドする

  3. [新しい API] を選択します。

  4. 設定セクションで、StartExecutionAPI向けのAPI 名[] を選択してから、API の作成

リソースを作成するには

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

  2. リポジトリの []新しい子リソースページで、executionforリソース名[] を選択してから、リソースの作成

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

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

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

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

  1. リポジトリの []/実行-POST-セットアップページ、用統合タイプ] で、AWSサービス

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

    注記

    現在 Step Functions をサポートしているリージョンについては、サポートされているリージョン

  3. を使用する場合AWSサービス] で、ステップ関数[] リストから [] を選択します。

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

    注記

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

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

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

  7. を使用する場合実行ロール「」と入力します。先ほど作成した IAM ロールのロール ARN次の例に示すように、.

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

    API Gateway とStep Functions 視覚的なマッピングは、/execution-POST-メソッドの実行ページで.

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

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" }
    注記

    詳細については、「」を参照してください。StartExecution リクエストの構文()AWS Step FunctionsAPI リファレンス

    ステートマシンの 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] の [Resources] ページで、[Actions]、[Deploy API] の順に選択します。

  2. API のデプロイ[] ダイアログボックスで、[新しいステージ]からのデプロイされるステージリストにalphaforステージ名[] を選択してから、デプロイ

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

  1. [StartExecutionAPI] の [Stages] ページで、[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}