Workflows について

ワークフローは、フルマネージドのオーケストレーション プラットフォームで、定義した順序(ワークフロー)でサービスを実行します。これらのワークフローでは、Cloud Run や Cloud Functions でホストされているカスタム サービス、Cloud Vision AI や BigQuery などの Google Cloud サービス、任意の HTTP ベースの API を含むサービスを組み合わせることができます。

ソリューションにワークフローを組み込むことで、サービスの依存関係をエンドツーエンドで明示的にモニタリングできます。アプリケーション、オペレーション、またはビジネス プロセスを指定するワークフローは、プロセスの信頼できる情報源または正規のナラティブを提供します。

Workflows はサーバーレスであり、必要に応じてスケールアップします。また、アイドル状態の間に料金が発生することはありません。ワークフローにコードやライブラリの依存関係は含まれていないため、セキュリティ パッチは必要ありません。ワークフローをデプロイすると、メンテナンスを行わずに確実に実行できます。ワークフローでは、ステータスの保持、再試行、ポーリング、最大 1 年間の待機が可能です。

Workflows は、これらの認定と基準に準拠しています。

次の図は、Workflows を使用してサービスをオーケストレートする例を示しています。

Workflows を使用したサービス オーケストレーション

主なユースケース

Workflows はさまざまなユースケースに対応しています。以下に例を示します。

サービス オーケストレーション サービスを組み合わせてソリューションを作成する - 複数のシステム間で一連のオペレーションを実行し、すべてのオペレーションが完了するまで待機します。イベント ドリブンの場合もあります。例:
  • 新しくアップロードされたファイルを Cloud Vision AI に送信して、タグを Firestore に書き込む
  • Cloud Functions の関数を呼び出し、結果を Cloud Run サービスに送信する
バッチジョブ 複数のアイテムへの操作 - 一連のアイテムまたはバッチデータに対してオペレーションを実行します。多くの場合、スケジュール設定されています。例:
  • 毎日お客様向けメールを送信する
  • BigQuery または機械学習ジョブを準備して実行する
  • レポートを生成する
ビジネス プロセス 基幹業務のワークフローを自動化する - 条件、アクション、人間参加型イベントなど、ビジネス プロセスのステップをエンコードします。例:
  • リクエストからフルフィルメントまでの注文を追跡する
  • 承認が必要なリソース リクエストを自動化する
IT プロセスの自動化 サービス オペレーションのマネージド実行 - Google Cloud の一連のサービス オペレーションを簡単にスクリプト化できます。例:
  • 新しいテナント プロジェクトまたはインフラストラクチャをプロビジョニングする
  • スケジュールまたはイベント トリガーによってリソースを停止する

基本コンセプト

ワークフローは、Workflows 構文を使用して記述された一連のステップで構成され、YAML または JSON のいずれかで記述できます。これがワークフローの定義です。Workflows 構文の詳細については、構文リファレンスをご覧ください。

ワークフローを作成するとデプロイされ、ワークフローを実行する準備が整います。Google Cloud Console または Google Cloud CLI を使用して ワークフローの作成と更新を行う方法を確認してください。

実行とは、ワークフローの定義に含まれるロジックを 1 回だけ実行することです。実行されなかったワークフローは課金されません。ワークフローのそれぞれの実行はすべて独立しています。また、このプロダクトの迅速なスケーリングにより、多数の同時実行が可能です。 クライアント ライブラリ、Cloud Console、Google Cloud CLI を使用するか、Workflows REST API にリクエストを送信して、ワークフローを実行できます。詳細については、ワークフローを実行するをご覧ください。

主な機能

実行の制御

手順
ワークフローを作成するには、Workflows 構文を使用して、目的のステップと実行順序を定義します。すべてのワークフローには少なくとも 1 つのステップが必要です。Workflows は、デフォルトでステップが順序付きのリストにあるかのように扱い、すべてのステップが実行されるまで、ステップを 1 つずつ実行します。詳細については、手順をご覧ください。
条件
switch ブロックを選択メカニズムとして使用して、式の値でワークフローの実行フローを制御できます。詳細については、条件をご覧ください。
繰り返し
for ループを使用すると、一連の数字に対して、またはリストやマップなどのデータのコレクションを介して反復処理できます。詳細については、繰り返しをご覧ください。
サブワークフロー
サブワークフローは、プログラミング言語のルーティンや関数と同様に動作し、ワークフローで複数回繰り返されるステップまたは一連のステップをカプセル化できます。詳細については、サブワークフローをご覧ください。

実行をトリガーする

手動
ワークフローは、Google Cloud Console またはコマンドラインから Google Cloud CLI を使用して管理できます。Google Cloud Console で、ワークフローの構文の編集中の可視化サポートも利用できます。
自動
Workflows API の Cloud クライアント ライブラリまたは REST API を使用して、ワークフローを管理できます。詳細については、Workflows API とリファレンスをご覧ください。
スケジュール設定済み
Cloud Scheduler を使用して特定のスケジュール(毎週月曜日の午前 9 時や 15 分ごとなど)でワークフローを実行できます。詳細については、Cloud Scheduler の使用によるワークフローのスケジュール設定をご覧ください。
ランタイム引数
実行時に渡されるデータにアクセスするには、メイン ワークフロー(main ブロックに配置)に params フィールドを追加します。main ブロックは、有効な JSON データ型である単一の引数を受け入れます。params フィールドは、ユーザーが渡したデータをワークフローが保存する際に使用する変数を指定します。詳細については、ランタイム引数をご覧ください。

サービスに接続する

HTTP API
HTTP 呼び出しを行い、そのレスポンスを変数に割り当てるワークフロー ステップを定義できます。たとえば、HTTP リクエストを介して Cloud Functions や Cloud Run などの Google Cloud サービスを呼び出すことができます。リクエストは、HTTP と HTTPS の両方がサポートされています。詳細については、HTTP リクエストの実行をご覧ください。
コネクタ
Workflows は、ワークフロー内の他の Google Cloud API に接続し、ワークフローをこれらの Google Cloud プロダクトと統合するために使用できるコネクタを公開します。コネクタは、リクエストのフォーマットを処理するため、呼び出し側のサービスが簡素化されます。コネクタは、Google Cloud API の詳細を認識する必要がないメソッドと引数を提供します。詳しくは、コネクタについてをご覧ください。
標準ライブラリと環境変数
Workflows 標準ライブラリと組み込み環境変数を使用すると、サービスとプロセス レスポンスの引数を簡単に構築できます。
標準ライブラリには、モジュールや、データ型や形式の変換などの頻繁に使用される関数が含まれています。ワークフローにライブラリをインポートまたは読み込む必要はありません。ライブラリ機能はデフォルト設定で動作します。詳細については、標準ライブラリの概要をご覧ください。
組み込み環境変数を使用して、ワークフローの環境情報(ロケーションやプロジェクト ID など)にアクセスできます。組み込み環境変数は宣言が不要であり、すべてのワークフロー実行で使用できます。詳細については、組み込み環境変数をご覧ください。

エラー処理

指数バックオフによる自動 HTTP 呼び出し再試行、カスタム エラーハンドラ、その他の高度な機能など、ワークフローの例外処理を使用すると、障害発生時にワークフローの復元と動作のカスタマイズができます。詳細については、ワークフローのエラーをご覧ください。

待機中

コールバックを使用すると、ワークフローの実行では、別のサービスがコールバック エンドポイントにリクエストを行うことを待ち、そのリクエストによってワークフローの実行を再開できます。コールバックを使用すると、ポーリングせずに指定したイベントを待機して、その発生をワークフローに知らせることが可能です。詳しくは、コールバックを使用して待機するをご覧ください。

ワークフローは、その定義にスリープ ステップを追加することで、実行を一時停止できます。次に、sys.sleep を使用すると、指定した時間間隔でデータをポーリングできます。詳細については、ポーリングを使用して待機するをご覧ください。

認証とアクセス制御

すべてのワークフロー実行には認証された呼び出しが必要なため、ワークフロー を使用して、偶発的または悪意のある呼び出しのリスクを軽減できます。IAM ベースのサービス アカウントを使用すると、他の Google Cloud APIs の操作を簡素化できます。また、Secret Manager を使用することで外部 API に対する認証に使用する鍵とパスワードを安全に保存できます。詳細については、認証アクセス制御をご覧ください。

オブザーバビリティ

Workflows は、Cloud Logging でのワークフロー実行の実行ログを自動的に生成します。呼び出しのログ記録またはカスタムログを使用して、ワークフローの実行中にログが Logging に送信されるタイミングを制御することもできます。詳細については、Cloud Logging にログを送信するをご覧ください。

監査ロギング情報は Cloud Audit Logs で確認できます。詳細については、Workflows の監査ロギングの情報をご覧ください。

コードサンプル

サンプルページに、有用な Workflows のコードサンプルが多数用意されています。

次のステップ