本教程介绍了如何创建一个工作流,该工作流使用 Cloud Translation API 连接器在异步批量模式下将文件翻译为其他语言。这样,系统便会在处理输入时提供实时输出。
目标
在此教程中,您将学习以下操作:
- 创建输入 Cloud Storage 存储桶。
- 使用英语创建两个文件,并将它们上传到输入存储桶。
- 创建一个工作流,该工作流使用 Cloud Translation API 连接器将两个文件翻译为法语和西班牙语,并将结果保存在输出存储桶中。
- 部署并执行工作流以编排整个过程。
费用
在本文档中,您将使用 Google Cloud 的以下收费组件:
准备工作
您的组织定义的安全限制条件可能会导致您无法完成以下步骤。如需了解相关问题排查信息,请参阅在受限的 Google Cloud 环境中开发应用。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Storage, Translation, and Workflows APIs:
gcloud services enable storage.googleapis.com
translate.googleapis.com workflows.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Storage, Translation, and Workflows APIs:
gcloud services enable storage.googleapis.com
translate.googleapis.com workflows.googleapis.com - 更新 gcloud 组件:
gcloud components update
- 使用您的账号登录:
gcloud auth login
- 设置本教程中使用的默认位置:
gcloud config set workflows/location us-central1
由于本教程使用位于
us-central1
中的默认 AutoML Translation 模型,因此您必须将位置设置为us-central1
。如果使用默认 AutoML 翻译模型或术语表以外的模型或术语表,请确保其位于与连接器调用相同的位置;否则,系统会返回
INVALID_ARGUMENT (400)
错误。如需了解详情,请参阅 batchTranslateText 方法。
创建输入 Cloud Storage 存储桶和文件
您可以使用 Cloud Storage 存储对象。对象是由任意格式的文件组成的不可变的数据段,并存储在称为存储分区的容器中。
创建 Cloud Storage 存储桶以保存要翻译的文件:
BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files gcloud storage buckets create gs://${BUCKET_INPUT}
使用英语创建两个文件,并将它们上传到输入存储桶:
echo "Hello World!" > file1.txt gcloud storage cp file1.txt gs://${BUCKET_INPUT} echo "Workflows connectors simplify calling services." > file2.txt gcloud storage cp file2.txt gs://${BUCKET_INPUT}
部署和执行工作流
工作流由一系列使用 Workflows 语法描述的步骤组成,该语法可以采用 YAML 或 JSON 格式编写。这是工作流的定义。创建工作流后,可以进行部署,使其可以执行。
创建一个文件名为
workflow.yaml
且包含以下内容的文本文件:工作流会分配变量、创建输出存储桶并启动文件翻译,并将结果保存到输出存储桶。
创建工作流后,请对其进行部署:
gcloud workflows deploy batch-translation --source=workflow.yaml
执行工作流:
gcloud workflows execute batch-translation
如需查看工作流状态,您可以运行返回的命令。例如:
gcloud workflows executions describe eb4a6239-cffa-4672-81d8-d4caef7d8424 / --workflow batch-translation / --location us-central1
工作流应为
ACTIVE
。几分钟后,系统会将翻译后的文件(法语和西班牙语)上传到输出存储桶。
列出输出存储桶中的对象
通过列出输出存储桶中的对象,您可以确认工作流是否按预期工作。
检索输出存储桶名称:
gcloud storage ls
输出类似于以下内容:
gs://PROJECT_ID-input-files/ gs://PROJECT_ID-output-files-TIMESTAMP/
列出输出存储桶中的对象:
gcloud storage ls gs://PROJECT_ID-output-files-TIMESTAMP/** --recursive
几分钟后,系统会列出经过翻译的文件,其中法语文件和西班牙语文件各有两个。
清理
如果您为本教程创建了一个新项目,请删除项目。 如果您使用的是现有项目,希望保留此项目且不保留本教程中添加的任何更改,请删除为教程创建的资源。
删除项目
为了避免产生费用,最简单的方法是删除您为本教程创建的项目。
要删除项目,请执行以下操作:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
删除教程资源
移除您在教程设置过程中添加的 gcloud 默认配置:
gcloud config unset workflows/location
删除在本教程中创建的工作流:
gcloud workflows delete WORKFLOW_NAME
删除在本教程中创建的存储桶:
gcloud storage rm gs://BUCKET_NAME --recursive
其中
BUCKET_NAME
是要删除的存储分区的名称,例如my-bucket
。响应类似于以下示例:
Removing gs://my-bucket/...
后续步骤
- 如需详细了解 Workflows,请参阅了解 Workflows。
- 如需详细了解 Workflows 语法,请参阅 Workflows 语法参考文档。
- 如需详细了解 Workflows 连接器,请参阅了解连接器。