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

2021.12.15

API Gatewayとは?

API Gateway は、API の作成するための AWSサービスです。API Gateway を使用して、REST、HTTP、および WebSocket API を作成することができます。AWSまたは他のウェブサービスにアクセスするAPIを作成できます。

API Gatewayを使用して作成できるRESTful API は次のとおりです:

  • HTTP ベース。
  • HTTP メソッド : GET、POST、PUT、PATCH、DELETE
  • ステートレスなクライアント/サーバー通信を有効にします。

この記事では、Step FunctionsのRESTful API(HTTP)を作成してみました。HTTPS リクエストが API メソッドに送信されると、API Gateway はStep Functions API アクションを呼び出します。

 

 

 

やってみた

Step Functionsの作成

  • Step Functions コンソールで、Create state machineをクリックしておきます。
  • Write your workflow in codeを選択して、TypeでStandardを選択しておきます。

 

 

  • 必要に応じてコードを変更し、[Next]をクリックします。
  • ステートマシン名を入力して、[Create new role]を選択して、State Machineを作成しておきます。

 

 

IAM ロールの作成

  • API GatewayのIAMロールを作成しておきます。
  • この設定でIAMロールを作成しておきます。
    • 信頼されたエンティティの種類 : AWS のサービス
    • ユースケース : API Gateway
    • ポリシー  :  AWSStepFunctionsFullAccess
    • ロールの名前 :  API-role
  • このIAMロールは、Step FunctionsのAPIを作成するときに使用されます。

 

APIの作成

  • API GatewayコンソールのREST APIペインで、Buildを選択しておきます。

 

  •  New API を選択して、API名を入力して、Create APIをクリックしておきます。

 

リソースの作成

  • Resources ページで、Actionsをクリック、Create Resourceを 選択しておきます。

 

  • リソース名を入力して、[Create Resource]をクリックしておきます。

 

POST メソッドの作成

  • Actionsで、Create Methodを選択して、POSTを選択して、チェックマークをオンにしておきます。

 

  • 次の設定でMethodを作成しておきます。
    • Integration type : AWS Service
    • Region : us-east-1
    • AWS Service : Step Functions
    • HTTP Method : POST
    • Action : StartExection
    • Role : 前の手順で作成したIAMロールArnを入力します。

 

 

  • API Gateway とStep Functionsのマッピングを見ることができます。

 

API をデプロイする

  • Actionsで、Deploy APIを選択しておきます。
  • New Stageを選択して、ステージ名を入力して、Deployをクリックしておきます

 

 

APIを使用してStep Functionsを呼び出す

  • State Machine Arnと Invoke URLを使用して、curlコマンドを実行しておきます。
curl -X POST -d '{"input": "{}","name": "APIStepFunctionsExecution","stateMachineArn": "arn:aws:states:us-east-1:0000000000:stateMachine:API-Step-Function"}'  https://a1b2c3d4e.execute-api.us-east-1.amazonaws.com/stage1/execution

 

  • Step Functionsコンソールで、呼び出されているState Machineを見ることができます。

 

まとめ

API Gateway を使用してStep FunctionsのAPIを作成してみました。コンソールからAPIをテストすることもできます。

Reference : Create API for Step Functions