ワークフローは、フルマネージドのオーケストレーション プラットフォームで、定義した順序(ワークフロー)でサービスを実行します。これらのワークフローでは、Cloud Run や Cloud Functions でホストされているカスタム サービス、Cloud Vision AI や BigQuery などの Google Cloud サービス、任意の HTTP ベースの API を含むサービスを組み合わせることができます。
ソリューションにワークフローを組み込むことで、サービスの依存関係をエンドツーエンドで明示的にモニタリングできます。アプリケーション、オペレーション、またはビジネス プロセスを指定するワークフローは、プロセスの信頼できる情報源または正規のナラティブを提供します。
ワークフローはサーバーレスで、必要に応じてスケールアップします。また、アイドル状態の間に料金が発生することはありません。ワークフローにコードやライブラリの依存関係は含まれていないため、セキュリティ パッチは必要ありません。ワークフローをデプロイすると、メンテナンスを行わずに確実に実行できます。ワークフローでは、ステータスの保持、再試行、ポーリング、最大 1 年間の待機が可能です。
Workflows は、これらの認定と基準に準拠しています。
次の図は、Workflows を使用してサービスをオーケストレートする例を示しています。
主なユースケース
Workflows はさまざまなユースケースに対応しています。以下に例を示します。
サービス オーケストレーション | サービスを組み合わせてソリューションを作成する - 複数のシステム間で一連のオペレーションを実行し、すべてのオペレーションが完了するまで待ちます。 イベント ドリブンの場合もあります。例:
|
バッチジョブ | 複数のアイテムへの操作 - 一連のアイテムまたはバッチデータに対してオペレーションを実行します。多くの場合、スケジュール設定されています。例:
|
ビジネス プロセス | 基幹業務のワークフローを自動化する - 条件、アクション、人間参加型イベントなど、ビジネス プロセスのステップをエンコードします。例:
|
IT プロセスの自動化 | サービス オペレーションのマネージド実行 - Google Cloud の一連のサービス オペレーションを簡単にスクリプト化できます。例:
|
基本コンセプト
ワークフローは、Workflows 構文を使用して記述された一連のステップで構成され、YAML または JSON のいずれかで記述できます。これがワークフローの定義です。Workflows 構文の詳細については、構文リファレンスをご覧ください。
ワークフローを作成するとデプロイされ、ワークフローを実行する準備が整います。Google Cloud Console または Google Cloud CLI を使用して ワークフローの作成と更新を行う方法を確認してください。
実行とは、ワークフローの定義に含まれるロジックを 1 回だけ実行することです。実行されなかったワークフローは課金されません。ワークフローのそれぞれの実行はすべて独立しています。また、このプロダクトの迅速なスケーリングにより、多数の同時実行が可能です。 クライアント ライブラリ、Google Cloud コンソール、Google Cloud CLI を使用するか、Workflows REST API にリクエストを送信して、ワークフローを実行できます。詳細については、ワークフローを実行するをご覧ください。
主な機能
実行の制御
- 手順
- ワークフローを作成するには、Workflows 構文を使用して、目的のステップと実行順序を定義します。すべてのワークフローには少なくとも 1 つのステップが必要です。デフォルトで、Workflows は、ステップが順序付きのリストにあるかのように扱い、すべてのステップが実行されるまで、ステップを 1 つずつ実行します。詳細については、手順をご覧ください。
- 条件
switch
ブロックを選択メカニズムとして使用して、式の値でワークフローの実行フローを制御できます。詳細については、条件をご覧ください。- 繰り返し
for
ループを使用すると、一連の数字に対して、またはリストやマップなどのデータのコレクションを介して反復処理できます。詳細については、繰り返しをご覧ください。- 並列ステップ
parallel
ステップを使用すると、同時に実行できるワークフローの一部(ブランチまたはループ)を定義できます。詳細については、並列の手順をご覧ください。- サブワークフロー
- サブワークフローは、プログラミング言語のルーティンや関数と同様に動作し、ワークフローが複数回繰り返されるステップまたはステップのセットをカプセル化できます。詳細については、サブワークフローをご覧ください。
実行をトリガーする
- 手動
- ワークフローは、Google Cloud コンソールまたはコマンドラインから Google Cloud CLI を使用して管理できます。GGoogle Cloud コンソールで、ワークフローの構文の編集中の可視化サポートも利用できます。
- 自動
- 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 リクエストの実行と Cloud Functions または Cloud Run の呼び出しをご覧ください。
- プライベート オンプレミス、Compute Engine、Google Kubernetes Engine(GKE)、その他の Google Cloud エンドポイントを呼び出すこともできます。詳細については、プライベート オンプレミス、Compute Engine、GKE、その他のエンドポイントを呼び出すをご覧ください。
- コネクタ
- Workflows は、ワークフロー内の他の Google Cloud API に接続し、ワークフローをこれらの Google Cloud プロダクトと統合するために使用できるコネクタを公開します。コネクタは、リクエストのフォーマットを処理するため、呼び出し側のサービスが簡素化されます。コネクタは、Google Cloud API の詳細を認識する必要がないメソッドと引数を提供します。詳しくは、コネクタについてをご覧ください。
- 標準ライブラリと環境変数
- ワークフロー標準ライブラリと組み込み環境変数を使用すると、サービスと引数のレスポンスを簡単に構築できます。
- 標準ライブラリには、モジュールや、データ型や形式の変換などの頻繁に使用される関数が含まれています。ワークフローにライブラリをインポートまたは読み込む必要はありません。ライブラリ機能はすぐに機能します。詳細については、標準ライブラリの概要をご覧ください。
- 組み込み環境変数を使用して、ワークフローの環境情報(ロケーションやプロジェクト ID など)にアクセスできます。組み込み環境変数は宣言が不要で、すべてのワークフロー実行で使用できます。詳細については、組み込み環境変数をご覧ください。
エラー処理
指数バックオフによる自動 HTTP 呼び出し再試行、カスタム エラーハンドラ、その他の高度な機能など、ワークフローの例外処理を使用すると、障害発生時にワークフローの復元と動作のカスタマイズができます。詳細については、ワークフローのエラーをご覧ください。
待機中
コールバックを使用すると、ワークフローの実行では、別のサービスがコールバック エンドポイントにリクエストを行うことを待ち、そのリクエストによってワークフローの実行を再開できます。コールバックを使用すると、ポーリングせずに指定したイベントを待機して、その発生をワークフローに知らせることが可能です。詳しくは、コールバックを使用して待機するをご覧ください。
ワークフローは、その定義にスリープ ステップを追加することで、実行を一時停止できます。次に、sys.sleep
を使用すると、指定した時間間隔でデータをポーリングできます。詳細については、ポーリングを使用して待機するをご覧ください。
認証とアクセス制御
すべてのワークフロー実行には認証された呼び出しが必要なため、ワークフローを使用して、誤操作や悪意のある呼び出しのリスクを軽減できます。IAM ベースのサービス アカウントを使用すると、他の Google Cloud APIs の操作を簡素化できます。また、シークレット マネージャー コネクタを使用して、外部 API を認証するためのキーとパスワードを安全に保管することができます。詳細については、アクセス制御とアクセス制御をご覧ください。
オブザーバビリティ
ワークフローは、Cloud Logging でのワークフロー実行の実行ログを自動的に生成します。コールロギングまたはカスタムログを使用して、ワークフローの実行中にログが Logging に送信されるタイミングを制御することもできます。詳細については、Cloud Logging にログを送信するをご覧ください。
監査ロギング情報は Cloud Audit Logs で確認できます。詳細については、ワークフロー監査ロギングの情報をご覧ください。
コードサンプル
サンプルページに、有用な Workflows のコードサンプルが多数用意されています。
次のステップ
Google Cloud コンソール から、または gcloud CLI を使用して、Workflows の使用を開始する。
ワークフローの作成と更新についてさらに学習する。
ワークフローのステップの実行順序を制御する方法を学習する。