Cloud Translation コネクタを使用して一括翻訳を実行する


このチュートリアルでは、Cloud Translation API コネクタを使用して、非同期バッチモードでファイルを他の言語に翻訳するワークフローを作成する方法を説明します。これにより、入力の処理中にリアルタイムの出力が提供されます。

目標

このチュートリアルの内容は次のとおりです。

  1. 入力 Cloud Storage バケットを作成します。
  2. 英語で 2 つのファイルを作成し、入力バケットにアップロードします。
  3. Cloud Translation API コネクタを使用して、2 つのファイルをフランス語とスペイン語に翻訳し、結果を出力バケットに保存するワークフローを作成します。
  4. ワークフローをデプロイして実行し、プロセス全体をオーケストレートします。

費用

このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

始める前に

組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。

  1. 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.
  2. Google Cloud CLI をインストールします。
  3. gcloud CLI を初期化するには:

    gcloud init
  4. Google Cloud プロジェクトを作成または選択します

    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、実際の Google Cloud プロジェクト名に置き換えます。

  5. Google Cloud プロジェクトで課金が有効になっていることを確認します

  6. Cloud Storage, Translation, and Workflows API を有効にします。

    gcloud services enable storage.googleapis.comtranslate.googleapis.comworkflows.googleapis.com
  7. Google Cloud CLI をインストールします。
  8. gcloud CLI を初期化するには:

    gcloud init
  9. Google Cloud プロジェクトを作成または選択します

    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、実際の Google Cloud プロジェクト名に置き換えます。

  10. Google Cloud プロジェクトで課金が有効になっていることを確認します

  11. Cloud Storage, Translation, and Workflows API を有効にします。

    gcloud services enable storage.googleapis.comtranslate.googleapis.comworkflows.googleapis.com
  12. gcloud コンポーネントを更新します。
    gcloud components update
  13. 自分のアカウントでログインします。
    gcloud auth login
  14. このチュートリアルで使用するデフォルトのロケーションを設定します。
    gcloud config set workflows/location us-central1
    

    このチュートリアルでは、us-central1 にあるデフォルトの AutoML Translation モデルを使用しているため、ロケーションを us-central1 に設定する必要があります。

    デフォルト以外の AutoML Translation モデルまたは用語集を使用する場合は、コネクタの呼び出しと同じ場所に存在することを確認してください。それ以外の場合は、INVALID_ARGUMENT (400) エラーが返されます。詳細については、batchTranslateText メソッドをご覧ください。

入力用の Cloud Storage バケットとファイルを作成する

Cloud Storage を使用してオブジェクトを格納できます。オブジェクトとは、任意の形式のファイルで構成される不変のデータであり、バケットと呼ばれるコンテナに格納されます。

  1. 翻訳するファイルを保持する Cloud Storage バケットを作成します。

    BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
    gsutil mb gs://${BUCKET_INPUT}
  2. 英語で 2 つのファイルを作成し、入力バケットにアップロードします。

    echo "Hello World!" > file1.txt
    gsutil cp file1.txt gs://${BUCKET_INPUT}
    echo "Workflows connectors simplify calling services." > file2.txt
    gsutil cp file2.txt gs://${BUCKET_INPUT}

ワークフローをデプロイして実行する

ワークフローは、ワークフロー構文で記述された一連のステップで構成され、YAML 形式または JSON 形式のいずれでも記述できます。これがワークフローの定義です。ワークフローを作成したら、デプロイして実行できるようにします。

  1. 次の内容のテキスト ファイルを workflow.yaml という名前で作成します。

    main:
      steps:
      - init:
          assign:
          - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
          - location: ${sys.get_env("GOOGLE_CLOUD_LOCATION")}
          - inputBucketName: ${projectId + "-input-files"}
          - outputBucketName: ${projectId + "-output-files-" + string(int(sys.now()))}
      - createOutputBucket:
            call: googleapis.storage.v1.buckets.insert
            args:
              project: ${projectId}
              body:
                name: ${outputBucketName}
      - batchTranslateText:
          call: googleapis.translate.v3beta1.projects.locations.batchTranslateText
          args:
              parent: ${"projects/" + projectId + "/locations/" + location}
              body:
                  inputConfigs:
                    gcsSource:
                      inputUri: ${"gs://" + inputBucketName + "/*"}
                  outputConfig:
                      gcsDestination:
                        outputUriPrefix: ${"gs://" + outputBucketName + "/"}
                  sourceLanguageCode: "en"
                  targetLanguageCodes: ["es", "fr"]
          result: batchTranslateTextResult

    このワークフローは、変数を割り当て、出力バケットを作成してファイルの翻訳を開始し、結果を出力バケットに保存します。

  2. ワークフローを作成したら、デプロイします。

    gcloud workflows deploy batch-translation --source=workflow.yaml
  3. ワークフローを実行します。

    gcloud workflows execute batch-translation
  4. ワークフローのステータスを確認するには、返されたコマンドを実行します。次に例を示します。

    gcloud workflows executions describe eb4a6239-cffa-4672-81d8-d4caef7d8424 /
      --workflow batch-translation /
      --location us-central1

    ワークフローは ACTIVE である必要があります。数分後、翻訳されたファイル(フランス語とスペイン語)が出力バケットにアップロードされます。

出力バケット内のオブジェクトを一覧表示する

出力バケット内のオブジェクトを一覧表示することで、ワークフローが想定どおりに動作していることを確認できます。

  1. 出力バケット名を取得します。

    gsutil ls

    出力は次のようになります。

    gs://PROJECT_ID-input-files/
    gs://PROJECT_ID-output-files-TIMESTAMP/

  2. バケット内のオブジェクトを一覧表示する。

    gsutil ls -r gs://PROJECT_ID-output-files-TIMESTAMP/**

    数分後、翻訳されたファイル(フランス語とスペイン語の 2 つのファイル)が一覧表示されます。

クリーンアップ

このチュートリアル用に新規プロジェクトを作成した場合は、そのプロジェクトを削除します。既存のプロジェクトを使用し、このチュートリアルで変更を加えずに残す場合は、チュートリアル用に作成したリソースを削除します。

プロジェクトの削除

課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除するには:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

チュートリアル リソースの削除

  1. チュートリアルを設定したときに追加した gcloud のデフォルト構成を削除します。

    gcloud config unset workflows/location
    
  2. このチュートリアルで作成したワークフローを削除します。

    gcloud workflows delete WORKFLOW_NAME
    
  3. このチュートリアルで作成したバケットを削除します。

    gsutil rm -r gs://BUCKET_NAME

    ここで、BUCKET_NAME は削除するバケットの名前です。例: my-bucket

    レスポンスは次の例のようになります。

    Removing gs://my-bucket/...

次のステップ