Ejecuta una traducción por lotes con el conector de Cloud Translation


En este instructivo, se muestra cómo crear un flujo de trabajo que usa el conector de la API de Cloud Translation para traducir archivos a otros idiomas en modo de lote asíncrono. Esto proporciona un resultado en tiempo real a medida que se procesan las entradas.

Objetivos

En este instructivo, realizarás las siguientes acciones:

  1. Crea un bucket de entrada de Cloud Storage.
  2. Crea dos archivos en inglés y súbelos al bucket de entrada.
  3. Crea un flujo de trabajo que use el conector de la API de Cloud Translation para traducir los dos archivos al francés y al español, y guarda los resultados en un bucket de salida.
  4. Implementar y ejecutar el flujo de trabajo para coordinar todo el proceso

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Es posible que los usuarios de Google Cloud nuevos cumplan con los requisitos para acceder a una prueba gratuita.

Antes de comenzar

Es posible que las restricciones de seguridad que define tu organización no te permitan completar los siguientes pasos. Para obtener información sobre la solución de problemas, consulta Desarrolla aplicaciones en un entorno Google Cloud restringido.

  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. Install the Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. 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.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Storage, Translation, and Workflows APIs:

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  8. Install the Google Cloud CLI.

  9. Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. 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.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Cloud Storage, Translation, and Workflows APIs:

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  14. Actualiza los componentes de gcloud:
    gcloud components update
  15. Accede con tu cuenta:
    gcloud auth login
  16. Establece la ubicación predeterminada que se usa en este instructivo:
    gcloud config set workflows/location us-central1

    Dado que este instructivo usa el modelo predeterminado de AutoML Translation, que se encuentra en us-central1, debes establecer la ubicación en us-central1.

    Si usas un modelo o un glosario de AutoML Translation que no sea el predeterminado, asegúrate de que se encuentre en la misma ubicación que la llamada al conector. De lo contrario, se devolverá un error INVALID_ARGUMENT (400). Para obtener más información, consulta el método batchTranslateText.

  17. Crea un bucket y archivos de entrada de Cloud Storage

    Puedes usar Cloud Storage para almacenar objetos. Los objetos son datos inmutables que constan de un archivo de cualquier formato y se almacenan en contenedores llamados buckets.

    1. Crea un bucket de Cloud Storage para almacenar los archivos que se traducirán:

      BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
      gcloud storage buckets create gs://${BUCKET_INPUT}
    2. Crea dos archivos en inglés y súbelos al bucket 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}

    Implementa y ejecuta el flujo de trabajo

    Un flujo de trabajo está compuesto por una serie de pasos descritos con la sintaxis de Workflows, que se pueden escribir en formato YAML o JSON. Esta es la definición del flujo de trabajo. Después de crear un flujo de trabajo, debes implementarlo para que esté disponible para su ejecución.

    1. Crea un archivo de texto con el nombre de archivo workflow.yaml y el siguiente contenido:

      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

      El flujo de trabajo asigna variables, crea un bucket de salida y, luego, inicia la traducción de los archivos y guarda los resultados en el bucket de salida.

    2. Después de crear el flujo de trabajo, impleméntalo:

      gcloud workflows deploy batch-translation --source=workflow.yaml
    3. Ejecuta el flujo de trabajo:

      gcloud workflows execute batch-translation
    4. Para ver el estado del flujo de trabajo, puedes ejecutar el comando que se devolvió. Por ejemplo:

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

      El flujo de trabajo debe ser ACTIVE. Después de unos minutos, los archivos traducidos (en francés y español) se subirán al bucket de salida.

    Enumera los objetos en el bucket de salida

    Para confirmar que el flujo de trabajo funcionó según lo previsto, enumera los objetos en tu bucket de salida.

    1. Recupera el nombre de tu bucket de salida:

      gcloud storage ls

      El resultado es similar a este:

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

    2. Enumera los objetos en tu bucket de salida:

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

      Después de unos minutos, se mostrarán los archivos traducidos, dos de cada uno en francés y español.

    Limpia

    Si creaste un proyecto nuevo para este instructivo, bórralo. Si usaste un proyecto existente y deseas conservarlo sin los cambios que se agregaron en este instructivo, borra los recursos creados para el instructivo.

    Borra el proyecto

    La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

    Para borrar el proyecto, sigue estos pasos:

    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.

    Elimina recursos de instructivos

    1. Quita la configuración predeterminada de gcloud que agregaste durante la configuración del instructivo:

      gcloud config unset workflows/location
    2. Borra el flujo de trabajo que se creó en este instructivo:

      gcloud workflows delete WORKFLOW_NAME
    3. Borra un bucket y sus objetos creados en este instructivo:

      gcloud storage rm gs://BUCKET_NAME --recursive

      En el ejemplo anterior, BUCKET_NAME es el nombre del bucket que se borrará. Por ejemplo, my-bucket

      La respuesta es similar al ejemplo a continuación:

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

    ¿Qué sigue?