API Gateway を使用してStep FunctionsのAPIを作成してみた。
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