使用客户端库执行工作流
您可以使用客户端库执行工作流和查看执行结果。
如需详细了解如何安装客户端库和设置开发环境,请参阅 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 文件并将其解压缩。
切换到包含工作流示例代码的目录:
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
该程序将执行以下操作:
- 为工作流设置 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 控制台中,进入 Workflows 页面:
在工作流列表中,点击某个工作流以转到其 工作流详细信息页面。
点击
删除。输入工作流的名称,然后点击确认。