Workflows
实验性函数
experimental.executions.map 会为每个
对应的实参启动一个工作流执行,并等待所有执行完成,然后返回一个列表,其中每个元素都是执行结果。
如果您使用 experimental.executions.map 来支持并行工作,则可以将
工作流迁移为改用并行步骤,以并行执行普通
for 循环。
parallel 步骤用于定义工作流的一部分,其中两个或多个步骤可以同时执行。parallel
步骤会等待,直到其中定义的所有步骤都已完成或被未处理的异常中断;然后,执行会继续。与
experimental.executions.map 一样,执行顺序无法保证。如需了解
详情,请参阅
并行步骤的语法参考页面。
请注意,使用 experimental.executions.map 或 workflows.executions.run
需要额外的 并发执行配额。
不过,如果使用并行步骤并内嵌调用连接器
(请参阅翻译连接器示例),则无需
额外的执行配额。
以下示例旨在帮助您将 experimental.executions.map 的使用替换为 parallel 步骤。
翻译工作流
给定源语言和目标语言,以下名为 translate,
使用
Cloud Translation 连接器
翻译一些输入文本并返回结果的工作流。请注意,Cloud Translation API 必须处于启用状态。
YAML
main: params: [args] steps: - basic_translate: call: googleapis.translate.v2.translations.translate args: body: q: ${args.text} target: ${args.target} format: "text" source: ${args.source} result: r - return_step: return: ${r}
JSON
{ "main": { "params": [ "args" ], "steps": [ { "basic_translate": { "call": "googleapis.translate.v2.translations.translate", "args": { "body": { "q": "${args.text}", "target": "${args.target}", "format": "text", "source": "${args.source}" } }, "result": "r" } }, { "return_step": { "return": "${r}" } } ] } }
上述示例的输入:
{ "text": "Bonjour", "target": "en", "source": "fr" }
输出应类似于以下内容:
{ "data": { "translations":