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

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

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

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

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

    BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
    gcloud storage buckets create gs://${BUCKET_INPUT}
  2. 英語で 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 形式のいずれでも記述できます。これがワークフローの定義です。ワークフローを作成したら、デプロイして実行できるようにします。

  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. 出力バケット名を取得します。

    gcloud storage ls

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

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

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

    gcloud storage ls gs://PROJECT_ID-output-files-TIMESTAMP/** --recursive

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