Esegui una traduzione batch utilizzando il connettore Cloud Translation

Questo tutorial mostra come creare un workflow che utilizza il connettore dell'API Cloud Translation per tradurre i file in altre lingue in modalità batch asincrona. In questo modo, l'output viene fornito in tempo reale durante l'elaborazione degli input.

Obiettivi

In questo tutorial, imparerai a:

  1. Creare un bucket Cloud Storage di input.
  2. Creare due file in inglese e caricarli nel bucket di input.
  3. Creare un workflow che utilizza il connettore dell'API Cloud Translation per tradurre i due file in francese e spagnolo e salvare i risultati in un bucket di output.
  4. Eseguire il deployment ed eseguire il workflow per orchestrare l'intero processo.

Costi

In questo documento, utilizzi i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi Google Cloud utenti potrebbero avere diritto a una prova senza costi.

Prima di iniziare

I vincoli di sicurezza definiti dalla tua organizzazione potrebbero impedirti di completare i passaggi seguenti. Per informazioni sulla risoluzione dei problemi, vedi Sviluppare applicazioni in un ambiente vincolato Google Cloud .

  1. Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. Installa Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico: puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l' resourcemanager.projects.create autorizzazione. Scopri come concedere i ruoli.
    • Crea un Google Cloud progetto:

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il Google Cloud progetto che stai creando.

    • Seleziona il Google Cloud progetto che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del Google Cloud progetto.

  6. Verifica che la fatturazione sia attivata per il tuo Google Cloud progetto.

  7. Attiva le API Cloud Storage, Translation e Workflows:

    Ruoli richiesti per attivare le API

    Per attivare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l' serviceusage.services.enable autorizzazione. Scopri come concedere i ruoli.

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

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. Crea o seleziona un Google Cloud progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico: puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l' resourcemanager.projects.create autorizzazione. Scopri come concedere i ruoli.
    • Crea un Google Cloud progetto:

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il Google Cloud progetto che stai creando.

    • Seleziona il Google Cloud progetto che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del Google Cloud progetto.

  12. Verifica che la fatturazione sia attivata per il tuo Google Cloud progetto.

  13. Attiva le API Cloud Storage, Translation e Workflows:

    Ruoli richiesti per attivare le API

    Per attivare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l' serviceusage.services.enable autorizzazione. Scopri come concedere i ruoli.

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  14. Aggiorna i componenti gcloud:
    gcloud components update
  15. Accedi utilizzando il tuo account:
    gcloud auth login
  16. Imposta la località predefinita utilizzata in questo tutorial:
    gcloud config set workflows/location us-central1

    Poiché questo tutorial utilizza il modello AutoML Translation predefinito che si trova in us-central1, devi impostare la località su us-central1.

    Se utilizzi un modello o un glossario AutoML Translation diverso da quello predefinito, assicurati che si trovi nella stessa località della chiamata al connettore; in caso contrario, viene restituito un INVALID_ARGUMENT (400) errore. Per maggiori dettagli, consulta il metodo batchTranslateText.

Creare un bucket Cloud Storage di input e file

Puoi utilizzare Cloud Storage per archiviare gli oggetti. Gli oggetti sono dati immutabili costituiti da un file di qualsiasi formato e vengono archiviati in container chiamati bucket.

  1. Crea un bucket Cloud Storage per contenere i file da tradurre:

    BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
    gcloud storage buckets create gs://${BUCKET_INPUT}
  2. Crea due file in inglese e caricali nel bucket di input:

    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}

Eseguire il deployment ed eseguire il workflow

Un workflow è costituito da una serie di passaggi descritti utilizzando la sintassi di Workflows, che può essere scritta in formato YAML o JSON. Questa è la definizione di workflow. Dopo aver creato un workflow, esegui il deployment per renderlo disponibile per l'esecuzione.

  1. Crea un file di testo con il nome workflow.yaml e il seguente contenuto:

    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

    Il workflow assegna le variabili, crea un bucket di output e avvia la traduzione dei file, salvando i risultati nel bucket di output.

  2. Dopo aver creato il workflow, esegui il deployment:

    gcloud workflows deploy batch-translation --source=workflow.yaml
  3. Esegui il workflow:

    gcloud workflows execute batch-translation
  4. Per visualizzare lo stato del workflow, puoi eseguire il comando restituito. Ad esempio:

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

    Il workflow deve essere ACTIVE. Dopo alcuni minuti, i file tradotti (in francese e spagnolo) vengono caricati nel bucket di output.

Elencare gli oggetti nel bucket di output

Puoi verificare che il workflow funzioni come previsto elencando gli oggetti nel bucket di output.

  1. Recupera il nome del bucket di output:

    gcloud storage ls

    L'output è simile al seguente:

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

  2. Elenca gli oggetti nel bucket di output:

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

    Dopo alcuni minuti, vengono elencati i file tradotti, due in francese e due in spagnolo.

Libera spazio

Se hai creato un nuovo progetto per questo tutorial, eliminalo. Se hai utilizzato un progetto esistente e vuoi conservarlo senza le modifiche aggiunte in questo tutorial, elimina le risorse create per il tutorial.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto creato per il tutorial.

Per eliminare il progetto:

  1. Nella Google Cloud console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.

Elimina le risorse del tutorial

  1. Rimuovi la configurazione predefinita di gcloud che hai aggiunto durante la configurazione del tutorial:

    gcloud config unset workflows/location
  2. Elimina il workflow creato in questo tutorial:

    gcloud workflows delete WORKFLOW_NAME
  3. Elimina un bucket e i relativi oggetti creati in questo tutorial:

    gcloud storage rm gs://BUCKET_NAME --recursive

    Dove BUCKET_NAME è il nome del bucket da eliminare. Ad esempio, my-bucket.

    La risposta è simile alla seguente:

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

Passaggi successivi