Tutorial sulle funzioni remote e sull'API Translation
Questo tutorial descrive come creare una funzione remota BigQuery, richiamare l'API Cloud Translation e eseguire la traduzione dei contenuti da qualsiasi lingua allo spagnolo utilizzando SQL e Python.
Ecco alcuni casi d'uso per questa funzione:
- Tradurre i commenti degli utenti su un sito web in una lingua locale
- Tradurre le richieste di assistenza da molte lingue in un'unica lingua comune per gli addetti all'assistenza
Obiettivi
- Assegna i ruoli necessari al tuo account.
- Crea una funzione Cloud Run.
- Creare un set di dati BigQuery.
- Crea una connessione e un account di servizio BigQuery.
- Concedi le autorizzazioni all'account di servizio BigQuery.
- Crea una funzione remota BigQuery.
- Chiama la funzione remota BigQuery.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi basata sull'utilizzo previsto,
utilizza il Calcolatore prezzi.
Prima di iniziare
Ti consigliamo di creare un progetto Google Cloud per questo tutorial. Inoltre, assicurati di disporre dei ruoli necessari per completare questo tutorial.
Configura un progetto Google Cloud
Per configurare un progetto Google Cloud per questo tutorial, segui questi passaggi:
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, Cloud Translation, Cloud Run functions, Cloud Build, Cloud Logging, Cloud Pub/Sub, Artifact Registry, and Cloud Run Admin APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, Cloud Translation, Cloud Run functions, Cloud Build, Cloud Logging, Cloud Pub/Sub, Artifact Registry, and Cloud Run Admin APIs.
Ruoli obbligatori per il tuo account
Per ottenere le autorizzazioni necessarie per eseguire le attività in questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Proprietario dei dati BigQuery (
roles/bigquery.dataOwner
) -
Amministratore delle connessioni BigQuery (
roles/bigquery.connectionAdmin
) -
Sviluppatore Cloud Functions (
roles/cloudfunctions.developer
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire le attività in questo tutorial. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per eseguire le attività di questo tutorial sono necessarie le seguenti autorizzazioni:
-
bigquery.datasets.create
-
bigquery.connections.create
-
bigquery.connections.get
-
cloudfunctions.functions.create
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Ruoli richiesti per l'account di servizio predefinito di Compute Engine
Quando hai attivato l'API per le funzioni Cloud Run, è stato creato un account di servizio predefinito di Compute Engine. Per completare questo tutorial, devi assegnare a questo account di servizio predefinito il ruolo Utente API Cloud Translation.
Copia l'account di servizio predefinito Compute Engine. Il tuo account di servizio predefinito ha il seguente aspetto:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sostituisci
PROJECT_NUMBER
con l'ID progetto.Nella console Google Cloud, vai alla pagina IAM.
Seleziona il progetto.
Fai clic su
Concedi accesso e poi incolla l'account di servizio predefinito di Compute Engine che hai copiato in precedenza nel campo Nuove entità.Nell'elenco Assegna ruoli, cerca e seleziona Utente API Cloud Translation.
Fai clic su Salva.
Creare una funzione Cloud Run
Utilizzando le funzioni Cloud Run, crea una funzione che traduca il testo inserito in spagnolo.
Crea una funzione Cloud Functions con le seguenti specifiche:
- Per Ambiente, seleziona 2ª gen..
- In Nome funzione, inserisci
translation-handler
. - In Regione, seleziona us-central1.
In Numero massimo di istanze, inserisci
10
.Questa impostazione si trova nella sezione Impostazioni di runtime, build, connessioni e sicurezza.
In questo tutorial utilizziamo un valore inferiore a quello predefinito per controllare la tasso di richieste inviata a Traduzione.
Per Runtime, seleziona Python 3.10.
In Punto di ingresso, inserisci
handle_translation
.
Nell'elenco dei file, seleziona main.py e incolla il seguente codice.
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Aggiorna
<your location>
conus-central1
.Nell'elenco dei file, seleziona requirements.txt e incolla il seguente testo:
Fai clic su Esegui il deployment e attendi il deployment della funzione.
Fai clic sulla scheda Trigger.
Copia il valore URL attivatore e salvalo per riferimento futuro. Devi utilizzare questo URL quando crei una funzione remota BigQuery.
Crea un set di dati BigQuery
Crea un set di dati BigQuery che conterrà la funzione remota. Quando crei il set di dati, includi queste specifiche:
- In ID set di dati, inserisci
remote_function_test
. - Per Tipo di località, seleziona Più regioni.
- Per Più regioni, seleziona Stati Uniti (più regioni negli Stati Uniti).
Crea una connessione e un account di servizio BigQuery
Crea una connessione BigQuery per poter implementare una funzione remota con qualsiasi lingua supportata nelle funzioni Cloud Run e in Cloud Run. Quando crei una connessione, viene creato un account di servizio per quella connessione.
Crea una connessione alla risorsa Google Cloud con le seguenti specifiche:
- In Tipo di connessione, seleziona BigLake e funzioni remote (risorsa Cloud).
- In ID connessione, inserisci
remote-function-connection
. - Per Tipo di località, seleziona Più regioni.
- Per Più regioni, seleziona Stati Uniti (più regioni negli Stati Uniti).
Apri l'elenco Connessioni esterne e seleziona
us.remote-function-connection
.Copia l'ID account di servizio e salvalo per dopo. Devi concedere le autorizzazioni a questo ID nel passaggio successivo.
Concedi le autorizzazioni all'account di servizio BigQuery
L'account di servizio che hai creato nel passaggio precedente deve disporre dell'autorizzazione per utilizzare Cloud Run in modo che la funzione remota BigQuery possa utilizzare la funzione delle funzioni Cloud Run. Per concedere le autorizzazioni all'account di servizio, completa i seguenti passaggi:
Vai alla pagina Cloud Run.
Seleziona il progetto.
Seleziona la casella di controllo accanto a
translation-handler
.Nel riquadro Autorizzazioni, fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci l'ID account di servizio che hai copiato in precedenza.
Nell'elenco Assegna ruoli, cerca e seleziona Richiedente Cloud Run.
Fai clic su Salva.
Creare una funzione remota BigQuery
Per utilizzare la funzione Cloud Run che traduce il testo in spagnolo con una funzione remota BigQuery, completa i seguenti passaggi.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente query:
CREATE OR REPLACE FUNCTION `remote_function_test.translate_text`(x STRING) RETURNS STRING REMOTE WITH CONNECTION `us.remote-function-connection` OPTIONS ( endpoint = 'TRIGGER_URL', max_batching_rows = 10);
Sostituisci
TRIGGER_URL
con l'URL dell'attivatore che hai salvato in precedenza quando hai creato una funzione Cloud Run.Fai clic su Esegui. Viene visualizzato un messaggio simile al seguente:
This statement created a new function named your_project.remote_function_test.translate_text.
Chiama la funzione remota BigQuery
Dopo aver creato la funzione remota, testala per assicurarti che sia collegata alle funzioni Cloud Run e produca i risultati previsti in spagnolo.
Nell'editor di query di BigQuery, inserisci la query seguente e poi fai clic su Esegui.
SELECT remote_function_test.translate_text('This new feature is fantastic!') AS translated_text;
I risultati sono simili ai seguenti:
+-------------------------------------------+ | translated_text | +-------------------------------------------+ | ¡Esta nueva característica es fantástica! | +-------------------------------------------+
(Facoltativo) Per testare la funzione remota su un set di dati pubblico, inserisci la seguente query e fai clic su Esegui. Per limitare i risultati restituiti, utilizza la clausola
LIMIT
.SELECT text, remote_function_test.translate_text(text) AS translated_text FROM (SELECT text FROM `bigquery-public-data.hacker_news.full` LIMIT 3);
I risultati sono simili ai seguenti:
+---------------------------------------------------------------------------+ | text | translated_text | +---------------------------------------------------------------------------+ | These benchmarks look good. | Estos puntos de referencia se ven bien. | | Who is using Java? | ¿Quién está usando Java? | | You need more database storage. | Necesitas más almacenamiento. | +---------------------------------------------------------------------------+
Elimina le risorse
Se non prevedi di utilizzare queste funzioni in questo progetto, puoi evitare costi aggiuntivi eliminando il progetto. Tutte le risorse associate al progetto verranno eliminate definitivamente.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Passaggi successivi
- Scopri come utilizzare le funzioni remote in BigQuery.
- Scopri di più sulla traduzione.
- Scopri di più sulle funzioni Cloud Run.
- Scopri di più su Cloud Run.