支援回呼端點,等待 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 範例瀏覽器。