クライアント ライブラリを使用してワークフローを実行する
ワークフローを実行し、クライアント ライブラリを使用して実行結果を表示できます。
クライアント ライブラリのインストールと開発環境の設定の詳細については、Workflows クライアント ライブラリの概要をご覧ください。
準備
組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。
- 次のサンプルでは、ワークフロー
myFirstWorkflow
をすでにデプロイしていることを前提としています。デプロイしていない場合は、Google Cloud コンソールまたは Google Cloud CLI を使用してデプロイしてください。 - Git ソースコード管理ツールをダウンロードしてインストールします。
サンプルコードを取得する
ローカルマシンにサンプルアプリのリポジトリのクローンを作成します。
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
または、zip 形式のサンプルをダウンロードし、ファイルを抽出してもかまいません。
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
または、zip 形式のサンプルをダウンロードし、ファイルを抽出してもかまいません。
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
または、zip 形式のサンプルをダウンロードし、ファイルを抽出してもかまいません。
Workflows のサンプルコードが含まれているディレクトリに移動します。
Java
cd java-docs-samples/workflows/cloud-client/
Node.js
cd nodejs-docs-samples/workflows/quickstart/
Python
cd python-docs-samples/workflows/cloud-client/
サンプルコードを見てみましょう。
Java
Node.js
Python
このプログラムは次の処理を行います。
- Workflows 用の Cloud クライアント ライブラリを設定します。
- ワークフローを実行します。
- 実行が終了するまで、ワークフローの実行をポーリングします(指数バックオフを使用)。
- 実行結果を出力します。
サンプルの実行
サンプルを実行するには、まず依存関係をインストールします。
Java
mvn compile
Node.js
npm install
Python
pip3 install -r requirements.txt
スクリプトを実行します。
Java
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME mvn compile exec:java -Dexec.mainClass=com.example.workflows.WorkflowsQuickstart
Node.js
node . PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Python
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME python3 main.py
以下を置き換えます。
PROJECT_ID
: (必須)Google Cloud プロジェクトのプロジェクト IDCLOUD_REGION
: ワークフローのロケーション(デフォルト:us-central1
)WORKFLOW_NAME
: ワークフローの ID(デフォルト:myFirstWorkflow
)
出力は次のようになります。
Execution finished with state: SUCCEEDED ["Sunday","Sunday in the Park with George","Sunday shopping","Sunday Bloody Sunday","Sunday Times Golden Globe Race","Sunday All Stars","Sunday Night (South Korean TV series)","Sunday Silence","Sunday Without God","Sunday Independent (Ireland)"]
実行リクエストでのデータ渡し
クライアント ライブラリの言語によっては、実行リクエストでランタイム引数を渡すこともできます。
たとえば、JavaScript を使用する場合は次のようにします。
// Execute workflow
try {
const createExecutionRes = await client.createExecution({
parent: client.workflowPath(projectId, location, workflow),
execution: {
argument: JSON.stringify({"searchTerm": "Friday"})
}
});
const executionName = createExecutionRes[0].name;
また、Java を使用する場合は次のようにします。
// Creates the execution object.
CreateExecutionRequest request =
CreateExecutionRequest.newBuilder()
.setParent(parent.toString())
.setExecution(Execution.newBuilder().setArgument("{\"searchTerm\":\"Friday\"}").build())
.build();
ランタイム引数を渡す方法について詳しくは、実行リクエストでのランタイム引数渡しをご覧ください。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。
Google Cloud コンソールの [ワークフロー] ページに移動します。
ワークフローのリストからワークフローをクリックして、[ワークフローの詳細] ページに移動します。
[
削除] をクリックします。ワークフローの名前を入力し、[確認] をクリックします。