Execute uma tradução em lote através do conetor do Cloud Translation

Este tutorial mostra-lhe como criar um fluxo de trabalho que usa o conector da Cloud Translation API para traduzir ficheiros para outros idiomas no modo de lote assíncrono. Isto fornece um resultado em tempo real à medida que as entradas são processadas.

Crie um contentor e ficheiros do Cloud Storage de entrada

Pode usar o Cloud Storage para armazenar objetos. Os objetos são partes de dados imutáveis compostas por um ficheiro de qualquer formato e são armazenados em contentores denominados depósitos.

  1. Crie um contentor do Cloud Storage para guardar os ficheiros a traduzir:

    BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files gcloud storage buckets create gs://${BUCKET_INPUT}
  2. Crie dois ficheiros em inglês e carregue-os para o contentor de entrada:

    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}

Implemente e execute o fluxo de trabalho

Um fluxo de trabalho é composto por uma série de passos descritos através da sintaxe Workflows, que pode ser escrita no formato YAML ou JSON. Esta é a definição do fluxo de trabalho. Depois de criar um fluxo de trabalho, implementa-o para o disponibilizar para execução.

  1. Crie um ficheiro de texto com o nome de ficheiro workflow.yaml e com o seguinte conteúdo:

    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

    O fluxo de trabalho atribui variáveis, cria um contentor de saída e inicia a tradução dos ficheiros, guardando os resultados no contentor de saída.

  2. Depois de criar o fluxo de trabalho, implemente-o:

    gcloud workflows deploy batch-translation --source=workflow.yaml
  3. Execute o fluxo de trabalho:

    gcloud workflows execute batch-translation
  4. Para ver o estado do fluxo de trabalho, pode executar o comando devolvido. Por exemplo:

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

    O fluxo de trabalho deve ser ACTIVE. Após alguns minutos, os ficheiros traduzidos (em francês e espanhol) são carregados para o contentor de saída.

Liste objetos no contentor de saída

Pode confirmar se o fluxo de trabalho funcionou conforme esperado listando os objetos no seu contentor de saída.

  1. Obtenha o nome do contentor de saída:

    gcloud storage ls

    O resultado é semelhante ao seguinte:

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

  2. Liste os objetos no seu contentor de saída:

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

    Após alguns minutos, são apresentados os ficheiros traduzidos, dois de cada em francês e espanhol.