BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AWS Step Functionsが200を超える追加サービスと統合

AWS Step Functionsが200を超える追加サービスと統合

原文(投稿日:2021/11/30)へのリンク

Amazon Web Services (AWS) は先ごろ AWS Step Functions が AWS SDK 統合を通じて 200 を超える AWS サービスのサポートを発表した。これにより、サポートされる API アクションの数が 46 から 9,000 を超えて拡張される。新しい統合タイプは、既存および将来のほとんどのサービスと API アクションがサポートされる。

AWS Step Functions は、AWS サービスのオーケストレーション、ビジネスプロセスの自動化、サーバレスアプリケーションの構築に使用される「ローコードビジュアルワークフローサービス」だ。サービスは、監査可能な実行時間が長くなる可能性のあるワークフロー (最大1年) または大量のイベント処理ワークロード (最大5分) のいずれかを対象とするユースケース向けに、2つの異なるワークフロータイプを提供する。「障害、再試行、並列化、サービス統合、可観測性」など一般的なワークフローオーケストレーションの側面は「開発者がより価値の高いビジネスロジックに集中できる」ように完全に管理されている (以前の記事)。

これまで Step Functions は 17 の AWS サービスとのいわゆる最適化された統合を提供していた。サービスの作成に「多くの作業を行った」元 AWS Distinguished Engineer の Tim Bray 氏は「最適化」とは「サービスの呼び出し方法がスマートで、ファイア・アンド・フォーゲットまたは完了を待つ (wait-for-completion) モードのいずれかで動作でき [そして] IAMポリシーを自動生成して、作業を楽にすることができる」ことを意味すると説明している。このより野心的な開発者エクスペリエンスのため、サポートされる AWS サービスのリストの増加は比較的ゆっくりで、カスタムイベントを Amazon EventBridge に送信する機能が2021年5月に公開されたのが最新の統合だった。

ユビキタスな AWS Lambda 統合を通じて呼び出されるカスタムコードの追加のコストと利用できない統合を回避するための複雑さとを取り除くため Step Functions は、汎用的な AWS SDK 統合を提供するようになった。この統合は「さまざまな理由」による例外を除いて今後ほとんどのサービスと API アクションをサポートできる。この柔軟性は自動生成された IAM ポリシーを手動で構成する必要があるという犠牲が伴う。新機能のための Amazon States Language (ASL) 構文は、確立された ARN ベースフォーマット (URI ベース統合) に従っている。

arn:aws:states:::aws-sdk:serviceName:apiAction.[serviceIntegrationPattern]

人気のあるツイートで、Tim Bray 氏は、この「AWS SDK で定義された API の Step Functions からのノーコード呼び出し」で予想される影響を要約した:

あの叫び声が聞こえますか? これは今は不要になったと気づいた多数の接着のためのユーティリティ Lambda 関数の声です。

ローンチブログの投稿で、AWS シニアデベロッパーアドボケイトの Marcia Villalba 氏が、いくつかの SDK 統合を使用して S3 バケットからメディアファイルをフェッチし、ビデオから文字を起こし、最後にそれをターゲット言語に翻訳する包括的なワークフローのサンプルについて説明している。

出典: AWS Step Functions SDK 統合サンプル (ローンチブログ投稿より)

特に、文字起こしジョブは非同期操作であり、次のワークフロー状態に移行する前にポーリングを行うループが必要だ。ポーリングループの実装は簡単だが、AWS コミュニティのヒーローである Ben Kehoe 氏は、このようなユースケースでも最適化された統合の恩恵を受けると注意した:

そうですが、AWS SDK 統合で「今日それができる」を可能にしますが、Step Functions が同期統合を構築しないことの言い訳にはなりません! ステートマシンのポーリングループは、深刻な未分化の重労働です。

関連するメモとして、AWS コミュニティヒーローの Ben Bridts 氏は、より大きな API レスポンスを処理するための「Step Functions SDK 統合のページングサポート」を望んでいる:

Amazon States Language にページングを構築することは私の頭痛の種です、SDK はすでにそれをする方法を知っています [...] また、SDK ベースのウェイタをサポートすることもボーナスポイントです。

これらの制限のいくつかは、より高いレベルのツールで回避できる。たとえば、AWS SDK 統合パターンの Cloud Development Kit (CDK) サポートは「呼び出されるサービスとアクションに基づいて」ステートマシンロールのポリシーに IAM ステートメントを自動的に追加することによる IAM ポリシーの生成を支援する。そして、「IAM アクション名が API サービス/アクション名と一致しない場合」の少数の場合にのみ介入が必要となる:

declare const myBucket: s3.Bucket;
const getObject = new tasks.CallAwsService(this, 'GetObject', {
  service: 's3',
  action: 'getObject',
  parameters: {
    Bucket: myBucket.bucketName,
    Key: sfn.JsonPath.stringAt('$.key')
  },
  iamResources: [myBucket.arnForObjects('*')],
});

関連ニュースで、AWS AthenaAWS Batch が AWS Step Functions をサービスコンソールに統合して、クエリとジョブへのコンテキストディープリンクを使用してワークフローを視覚化し、一般的なユースケースのサンプルプロジェクトを簡単に始めることできるようにした。

Microsoft の Azure Logic Apps サービスは、コネクタに基づく異なる拡張アーキテクチャを使用し、他の Azure サービス用の多くの組み込みコネクタを提供し、より調整されたシナリオ用のカスタムコネクタを構築する機能を追加している。Google Cloud Platform の Workflows も、他の Google Cloud 製品にアクセスするための専用コネクタを公開している。

AWS Step Functions のドキュメントは、他のサービスと Step Functions を使用するセクションや API リファレンスを含む開発者ガイドがある。AWS CLI の Step Functions コマンドは別個に文書化されている。サポートは、AWS Step Functions フォーラムを介して提供される。AWS SDK 統合は、Step Functions と対象サービスそれぞれの通常の使用量ベースの料金を超える追加料金なしで提供される。

この記事に星をつける

おすすめ度
スタイル

BT