このチュートリアルでは、Cloud Translation API コネクタを使用して、非同期バッチモードでファイルを他の言語に翻訳するワークフローを作成する方法について説明します。これにより、入力の処理中にリアルタイムで出力が提供されます。
目標
このチュートリアルの内容は次のとおりです。
- 入力 Cloud Storage バケットを作成します。
- 英語で 2 つのファイルを作成し、入力バケットにアップロードします。
- Cloud Translation API コネクタを使用して 2 つのファイルをフランス語とスペイン語に翻訳し、結果を出力バケットに保存するワークフローを作成します。
- ワークフローをデプロイして実行し、プロセス全体をオーケストレートします。
費用
このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Google Cloud プロジェクトを作成または選択します。
プロジェクトの選択または作成に必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、
resourcemanager.projects.create権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。ロールを付与する方法を確認する。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Google Cloud プロジェクトの名前に置き換えます。
Cloud Storage、Translation、Workflows の各 API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。ロールを付与する方法を確認する。gcloud services enable storage.googleapis.com
translate.googleapis.com workflows.googleapis.com -
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Google Cloud プロジェクトを作成または選択します。
プロジェクトの選択または作成に必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、
resourcemanager.projects.create権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。ロールを付与する方法を確認する。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Google Cloud プロジェクトの名前に置き換えます。
Cloud Storage、Translation、Workflows の各 API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。ロールを付与する方法を確認する。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 Translation モデルまたは用語集を使用する場合は、コネクタの呼び出しと同じ場所に存在することを確認してください。それ以外の場合は、
INVALID_ARGUMENT (400)エラーが返されます。詳細については、batchTranslateText メソッドをご覧ください。
入力用の Cloud Storage バケットとファイルを作成する
Cloud Storage を使用してオブジェクトを保存できます。オブジェクトは、任意の形式のファイルで構成される不変のデータであり、バケットと呼ばれるコンテナに保存されます。
翻訳するファイルを保持する Cloud Storage バケットを作成します。
BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files gcloud storage buckets create gs://${BUCKET_INPUT}
英語で 2 つのファイルを作成し、入力バケットにアップロードします。
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}
ワークフローをデプロイして実行する
ワークフローは、ワークフロー構文で記述された一連のステップで構成され、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
数分後、翻訳されたファイル(フランス語とスペイン語の 2 つのファイル)が一覧表示されます。
クリーンアップ
このチュートリアル用に新規プロジェクトを作成した場合は、そのプロジェクトを削除します。既存のプロジェクトを使用し、このチュートリアルで変更を加えずに残す場合は、チュートリアル用に作成したリソースを削除します。
プロジェクトの削除
課金されないようにする最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- Google Cloud コンソールで [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
チュートリアル リソースの削除
チュートリアルを設定したときに追加した 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 コネクタの詳細については、コネクタについてをご覧ください。