Amazon Web Services ブログ

タスク状態のテストと外部エンドポイントが AWS Step Functions で利用できるようになりました

AWS Step Functions HTTPS エンドポイントでは、サードパーティー API と外部サービスをワークフローに統合できるようになりました。HTTPS エンドポイントを使用すると、外部 API を呼び出して既存の SaaS プロバイダーと簡単に統合できます。例えば、支払い処理には Stripe、コードコラボレーションとリポジトリ管理には GitHub、営業やマーケティングのインサイトには Salesforce などがあります。このリリース前は、顧客は AWS Lambda 関数を使用して外部エンドポイントを呼び出し、認証とエラーをコードで直接処理する必要がありました。

また、ステートマシンをデプロイしたり実行したりすることなく、タスクの状態を個別にテストできる新しい機能も発表しました。

AWS Step Functions は、デベロッパーが分散アプリケーションの構築、プロセスの自動化、マイクロサービスの調整、データおよび機械学習 (ML) パイプラインの作成を簡単に行える視覚的なワークフローサービスです。Step Functions は 220 以上の AWS のサービスと統合され、組み込みのエラー処理、リアルタイムで監査可能なワークフロー実行履歴、大規模な並列処理など、デベロッパーが構築するのに役立つ機能を提供します。

HTTPS エンドポイント
HTTPS エンドポイントは、AWS 外のサードパーティー HTTP ターゲットに接続できるようにするタスクステートの新しいリソースです。Step Functions は HTTP エンドポイントを呼び出し、リクエスト本文、ヘッダー、パラメータを配信し、サードパーティーサービスからレスポンスを取得します。GET や POST など、任意の HTTP メソッドを使用できます。

HTTPS エンドポイントは、Amazon EventBridge 接続を使用してターゲットの認証情報を管理します。これにより、使用する認証タイプが定義されます。これには、ユーザー名とパスワード、API キー、OAuth による基本認証などがあります。EventBridge 接続では、AWS Secrets Manager を使用してシークレットを保存します。これにより、シークレットがステートマシンから除外され、ログやステートマシンの定義でシークレットが誤って公開されるリスクが軽減されます。

HTTPS エンドポイントの開始方法
HTTPS エンドポイントを使い始めるには、まず EventBridge 接続を作成する必要があります。次に、新しい AWS Identity and Access Management (IAM) ロールを作成し、許可を付与する必要があります。これにより、ステートマシンが接続リソースにアクセスし、Secrets Manager からシークレットを取得し、HTTP エンドポイントを呼び出す許可を取得できます。

ステートマシンの実行ロールに含める必要があるポリシーは次のとおりです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret"
            ],
            "Resource": "arn:aws:secretsmanager:*:*:secret:events!connection/*"
        }
    ]
}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "RetrieveConnectionCredentials",
            "Effect": "Allow",
            "Action": [
                "events:RetrieveConnectionCredentials"
            ],
            "Resource": [
                "arn:aws:events:us-east-2:123456789012:connection/oauth_connection/aeabd89e-d39c-4181-9486-9fe03e6f286a"
            ]
        }
    ]
}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "InvokeHTTPEndpoint",
            "Effect": "Allow",
            "Action": [
                "states:InvokeHTTPEndpoint"
            ],
            "Resource": [
                "arn:aws:states:us-east-2:123456789012:stateMachine:myStateMachine"
            ]
        }
    ]
}

すべての準備が整ったら、ステートマシンを作成できます。ステートマシンに、サードパーティー API を呼び出すための新しいタスクステートを追加します。必要なサードパーティー URL を指すように API エンドポイントを設定し、正しい HTTP メソッドを設定し、以前に作成した接続の Amazon リソースネーム (ARN) をそのエンドポイントの認証として選択し、必要に応じてリクエスト本文を指定することができます。さらに、これらのパラメータはすべて、ランタイムの際に JSON のステート入力から動的に設定できます。

サードパーティー API を呼び出す

これで、Step Functions を使用して外部からのリクエストを行うのが簡単になり、Step Functions が提供するすべての設定を利用して、一時的なエラーや一時的なサービスが利用できなくなった場合の再試行や、調査や解決に時間がかかるエラーのリドライブなどのエラーを処理できます。

状態をテストする
フィードバックサイクルを加速するために、個々の状態をテストする新しい機能も発表します。この新機能により、ワークフローの実行とは別に状態をテストできます。これは、エンドポイントの設定をテストする場合に特に便利です。ワークフローをデプロイしたり、ステートマシン全体を実行したりすることなく、入力を変更してさまざまなシナリオをテストできます。この新機能は、すべてのタスク、選択、およびパスステートで利用できます。

タスクを選択すると、Step Functions Workflow Studio にテスト機能が表示されます。

状態のテストボタン

[Test state] (状態をテスト) を選択すると、タスクの状態をテストできる別のビューにリダイレクトされます。ステートマシンロールに適切な許可があること、呼び出すエンドポイントが正しく設定されていること、およびデータ操作が期待どおりに行えることをテストできます。

状態をテストする方法

利用状況
Step Functions が提供するすべての機能により、支払いフロー、手動入力によるワークフロー、レガシーシステムへの統合など、さまざまな問題を解決できるステートマシンの構築がこれまでになく簡単になりました。Step Functions HTTPS エンドポイントを使用すると、ユーザーのクレジットカードに一度だけ請求され、エラーが自動的に処理されるようにしながら、一般的な支払いプラットフォームと直接統合できます。さらに、ステートマシンをデプロイする前でも、新しいテストステート機能を使用してこの新しい統合をテストできます。

新機能は、アジアパシフィック (ハイデラバード)、アジアパシフィック (メルボルン)、AWS イスラエル (テルアビブ)、中国、GovCloud リージョンを除くすべての AWS リージョンでご利用いただけます。

使用を開始するには、AWS マネジメントコンソールの Step Functions にある「Stripe を使用して請求書を生成」のサンプルプロジェクトを試してみるか、AWS Step Functions デベロッパーガイドで詳細をご確認ください。

– Marcia

原文はこちらです。