Amazon Web Services ブログ

新発表 – AWS Step Functions が コンピュート、データベース、メッセージング、アナリティクス、機械学習 のサービスと統合

AWS Step Functions はアプリケーション開発者のためのフルマネージドなワークフローサービスです。各アクティビティの接続と整理を、信頼性があり繰り返し可能な形で、ビジネスロジックとワークフローロジックを分離しながら、高レベルの設計と作業で実現できます。ワークフロー(ステートマシンと言います)を設計、テストした後、スケーラブルにデプロイして10,000から100,000もの処理を独立かつ同時に実行することができます。Step Functions は各ワークフローの状態を追跡し、モニタリングやロギングもシンプルにします。詳しくは 「サーバーレスワークフローを作成する」 のチュートリアルをお試しください。

AWS re:Invent 2016 でリリースした後、Step Functions は多くのお客様に使っていただきました(私のポスト 「Step Functions を使用するともっとうまくできます」 は実世界のユースケースを紹介しています)。お客様には AWS Lambda を使ってビジネスロジックを容易に実装できることを喜んでいただいていますが、もっと多くのオプションが欲しいとの要望もいただいていました。

より多くのサービスとの統合、より多くのパワー

本日 (11/29)、Step Functions ステートマシンに新たなパワーを追加し、8 つの AWS サービスを利用できるようになりました。新しく利用できるアクションは以下の通りです。

これらのアクションは個別に使用することも、相互に組み合わせて使うこともできます。使い始めるための参考としていくつかのクールなサンプルを作りました。これはバッチジョブの管理、コンテナタスクの管理、DynamoDBからのデータコピー、バッチジョブの状態取得などの実装方法を示しています。こちらがデータをDynamoDBからSQSへコピーするステートマシンのサンプルです。

このサンプル( AWS CloudFormation テンプレートを公開しています ) は必要なパーツを全て作ってくれます。初期のテストデータを生成 (seed) するLambdaファンクションも含みます。スタックを作成した後、ステートマシンを Step Funcstions のコンソールで確認し、実行します。

コンソールで各ステップを確認できます。最初のアクティビティ ( Seed the DynamoDB Table ) は Lambda ファンクションを呼び出し、テーブルにいくつかのアイテムを登録し、パーティションキー ( message id ) のリストを返します。

3番目のステップ ( Send Message to SQS ) は以下の入力で起動します。

そして次のような出力を生成します。これは SQS の MessageId を持っています。

ご覧のようにステートマシンは全ての面倒な処理 – Lambda ファンクションの呼び出し、message ID に対する繰り返し処理、 各々のループでの DynamoDB と SQS の呼び出し を実施してくれます。同じ処理を同時に多数実行することもできます。

この例は開始点です。皆さんはもっと素晴らしいものを作れるでしょう。ぜひ私たちのサンプルとテンプレートをチェックして、アイディアを得てください。

すでにステートマシンを作り、実行している方は、Magic ARN と Parameter を知っておく必要があります。

  • Magic ARNs – 各々の新しいオペレーションは特別な “Magic ARN” で表現します(ここでいう Magic は Tim が言うテクニカルタームです)。SQSにメッセージを送る、バッチジョブを起動する、などです。他の4つも同様です。
  • Parameters – Task 状態 の中の Parameters フィールドを使って、今回追加されたサービスの API に渡すパラメータを制御できます。ステートマシンの定義に、静的な JSON や あるいは JsonPath形式で記述した 状態入力の特定のエレメントを含むことができます。

こちらが Magic ARN や Parameter を使って状態を定義する方法の例です。

"Read Next Message from DynamoDB": {
  "Type": "Task",
  "Resource": "arn:aws:states:::dynamodb:getItem", 
  "Parameters": {
    "TableName": "StepDemoStack-DDBTable-1DKVAVTZ1QTSH", 
    "Key": {
      "MessageId": {"S.$": "$.List[0]"} 
    }
  },
  "ResultPath": "$.DynamoDB", 
  "Next": "Send Message to SQS"
},

今すぐ利用可能です

新しい機能は今すぐ利用可能です。Step Functions が利用可能な全ての AWS リージョンでご利用いただけます。通常の状態遷移の料金 および利用した AWS サービスの料金のみでご利用いただけます。

原文は New – Compute, Database, Messaging, Analytics, and Machine Learning Integration for AWS Step Functions です。翻訳は SA 大村が担当しました。