通过支持等待 HTTP 请求到达回调端点来验证翻译请求,以便在稍后的某个时间点继续执行工作流。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
YAML
main:
params: [translation_request]
steps:
- log_request:
call: sys.log
args:
text: ${translation_request}
- vars:
assign:
- exec_id: ${sys.get_env("GOOGLE_CLOUD_WORKFLOW_EXECUTION_ID")}
- text_to_translate: ${translation_request.text}
- database_root: ${"projects/" + sys.get_env("GOOGLE_CLOUD_PROJECT_ID") + "/databases/(default)/documents/translations/"}
- log_translation_request:
call: sys.log
args:
text: ${text_to_translate}
- store_translation_request:
call: googleapis.firestore.v1.projects.databases.documents.patch
args:
name: ${database_root + exec_id}
updateMask:
fieldPaths: ['text']
body:
fields:
text:
stringValue: ${text_to_translate}
result: store_translation_request_result
- translate:
call: googleapis.translate.v2.translations.translate
args:
query:
q: ${text_to_translate}
target: "FR"
format: "text"
source: "EN"
result: translation_result
- assign_translation:
assign:
- translation: ${translation_result.data.translations[0].translatedText}
- log_translation_result:
call: sys.log
args:
text: ${translation}
- store_translated_text:
call: googleapis.firestore.v1.projects.databases.documents.patch
args:
name: ${database_root + exec_id}
updateMask:
fieldPaths: ['translation']
body:
fields:
translation:
stringValue: ${translation}
result: store_translation_request_result
- create_callback:
call: events.create_callback_endpoint
args:
http_callback_method: "POST"
result: callback_details
- log_callback_details:
call: sys.log
args:
text: ${callback_details}
- store_callback_details:
call: googleapis.firestore.v1.projects.databases.documents.patch
args:
name: ${database_root + exec_id}
updateMask:
fieldPaths: ['callback']
body:
fields:
callback:
stringValue: ${callback_details.url}
result: store_callback_details_result
- await_callback:
call: events.await_callback
args:
callback: ${callback_details}
timeout: 3600
result: callback_request
- assign_approval:
assign:
- approved: ${callback_request.http_request.body.approved}
- store_approval:
call: googleapis.firestore.v1.projects.databases.documents.patch
args:
name: ${database_root + exec_id}
updateMask:
fieldPaths: ['approved']
body:
fields:
approved:
booleanValue: ${approved}
result: store_approval_result
- return_outcome:
return:
text: ${text_to_translate}
translation: ${translation}
approved: ${approved}
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅Google Cloud 示例浏览器。