Tutoriel sur les fonctions à distance et l'API Translation
Ce tutoriel explique comment créer une fonction distante BigQuery, appeler l'API Cloud Translation et effectuer une traduction de contenu de n'importe quelle langue vers l'espagnol en utilisant SQL et Python.
Voici quelques exemples d'utilisation de cette fonction :
- Traduire les commentaires d'utilisateurs d'un site Web dans la langue locale.
- Traduire les demandes d'assistance de nombreuses langues vers une langue commune pour le personnel d'assistance.
Objectifs
- Attribuer les rôles nécessaires à votre compte ;
- Créer une fonction Cloud Run Functions.
- Créez un ensemble de données BigQuery.
- créer une connexion BigQuery et un compte de service ;
- accorder des autorisations au compte de service BigQuery ;
- créer une fonction distante BigQuery ;
- appeler la fonction distante BigQuery.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Avant de commencer
Nous vous recommandons de créer un projet Google Cloud pour ce tutoriel. Assurez-vous également que vous disposez des rôles requis pour suivre ce tutoriel.
Configurer un projet Google Cloud
Pour configurer un projet Google Cloud pour ce tutoriel, procédez comme suit :
- 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.
Rôles requis pour votre compte
Pour obtenir les autorisations nécessaires pour effectuer les tâches de ce tutoriel, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Propriétaire de données BigQuery (
roles/bigquery.dataOwner
) -
Administrateur de connexion BigQuery (
roles/bigquery.connectionAdmin
) -
Développeur Cloud Functions (
roles/cloudfunctions.developer
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour effectuer les tâches décrites dans ce tutoriel. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour effectuer les tâches décrites dans ce tutoriel :
-
bigquery.datasets.create
-
bigquery.connections.create
-
bigquery.connections.get
-
cloudfunctions.functions.create
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Rôles requis pour le compte de service Compute Engine par défaut
Lorsque vous avez activé l'API pour Cloud Run Functions, un compte de service Compute Engine par défaut a été créé. Pour suivre ce tutoriel, vous devez attribuer le rôle d'utilisateur de l'API Cloud Translation à ce compte de service par défaut.
Copiez votre compte de service Compute Engine par défaut. Votre compte de service par défaut ressemble à ceci :
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Remplacez
PROJECT_NUMBER
par l'ID du projet.Dans la console Google Cloud, accédez à la page IAM.
Sélectionnez votre projet.
Cliquez sur
Accorder l'accès, puis collez le compte de service Compute Engine par défaut que vous avez copié précédemment dans le champ Nouveaux comptes principaux.Dans la liste Attribuer des rôles, recherchez et sélectionnez Utilisateur de l'API Cloud Translation.
Cliquez sur Enregistrer.
Créer une fonction Cloud Run Functions
À l'aide de Cloud Run Functions, créez une fonction qui traduit le texte d'entrée en espagnol.
Créez une fonction Cloud Run Functions avec les spécifications suivantes :
- Pour Environnement, sélectionnez 2e génération.
- Dans le champ Nom de la fonction, saisissez
translation-handler
. - Dans le champ Région, sélectionnez us-central1.
Dans le champ Nombre maximal d'instances, saisissez
10
.Ce paramètre se trouve dans la section Paramètres d'exécution, de compilation, de connexion et de sécurité.
Dans ce tutoriel, nous utilisons une valeur inférieure à la valeur par défaut pour contrôler le taux de requêtes envoyées à Cloud Translation.
Dans le champ Environnement d'exécution, sélectionnez Python 3.10.
Dans le champ Point d'entrée, saisissez
handle_translation
.
Dans la liste des fichiers, sélectionnez main.py, puis collez le code suivant :
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Mettre
<your location>
à jour avecus-central1
.Dans la liste des fichiers, sélectionnez requirements.txt, puis collez le texte suivant :
Cliquez sur Déployer et attendez que la fonction soit déployée.
Cliquez sur l'onglet Déclencheur.
Copiez la valeur de l'URL du déclencheur et enregistrez-la pour une utilisation ultérieure. Vous devez utiliser cette URL lorsque vous créez une fonction distante BigQuery.
Créer un ensemble de données BigQuery
Créez un ensemble de données BigQuery qui contiendra la fonction distante. Lorsque vous créez l'ensemble de données, incluez les spécifications suivantes :
- Dans le champ ID de l'ensemble de données, saisissez
remote_function_test
. - Dans le champ Type d'emplacement, sélectionnez Multirégional.
- Dans le champ Multirégional, sélectionnez US (plusieurs régions aux États-Unis).
Créer une connexion BigQuery et un compte de service
Créez une connexion BigQuery afin de pouvoir mettre en œuvre une fonction distante avec tous les langages compatibles avec Cloud Run Functions et Cloud Run. Lorsque vous créez une connexion, un compte de service est créé pour cette connexion.
Créez une connexion de ressource Google Cloud avec les spécifications suivantes :
- Dans le champ Type de connexion, sélectionnez BigLake et fonctions distantes (ressource Cloud).
- Dans le champ ID de connexion, saisissez
remote-function-connection
. - Dans le champ Type d'emplacement, sélectionnez Multirégional.
- Dans le champ Multirégional, sélectionnez US (plusieurs régions aux États-Unis).
Ouvrez la liste Connexions externes, puis sélectionnez
us.remote-function-connection
.Copiez l'ID du compte de service et enregistrez-le pour une utilisation ultérieure. Vous devrez accorder des autorisations à cet ID à l'étape suivante.
Accorder des autorisations au compte de service BigQuery
Le compte de service que vous avez créé à l'étape précédente doit être autorisé à utiliser Cloud Run pour que la fonction distante BigQuery puisse utiliser la fonction Cloud Run Functions. Pour accorder des autorisations au compte de service, procédez comme suit :
Accédez à la page Cloud Run
Sélectionnez votre projet.
Cochez la case située à côté de
translation-handler
.Dans le panneau Autorisations, cliquez sur Ajouter un compte principal.
Dans le champ Nouveaux comptes principaux, saisissez l'ID du compte de service que vous avez copié précédemment.
Dans la liste Attribuer des rôles, recherchez et sélectionnez Demandeur Cloud Run.
Cliquez sur Enregistrer.
Créer une fonction distante BigQuery
Pour utiliser la fonction Cloud Run Functions qui traduit du texte en espagnol avec une fonction distante BigQuery, procédez comme suit :
Dans la console Google Cloud, accédez à la page BigQuery.
Dans Query editor (éditeur de requête), saisissez la requête suivante :
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);
Remplacez
TRIGGER_URL
par l'URL du déclencheur que vous avez enregistrée lors de la création d'une fonction Cloud Run Functions.Cliquez sur Exécuter. Un message de ce type s'affiche :
This statement created a new function named your_project.remote_function_test.translate_text.
Appeler la fonction distante BigQuery
Après avoir créé votre fonction distante, testez-la pour vous assurer qu'elle est associée à la fonction Cloud Run Functions et qu'elle génère les résultats attendus en espagnol.
Dans l'éditeur de requête BigQuery, saisissez la requête suivante, puis cliquez sur Exécuter.
SELECT remote_function_test.translate_text('This new feature is fantastic!') AS translated_text;
Les résultats sont semblables aux suivants :
+-------------------------------------------+ | translated_text | +-------------------------------------------+ | ¡Esta nueva característica es fantástica! | +-------------------------------------------+
Facultatif : Pour tester la fonction distante sur un ensemble de données public, saisissez la requête suivante, puis cliquez sur Exécuter. Pour limiter les résultats renvoyés, utilisez la clause
LIMIT
.SELECT text, remote_function_test.translate_text(text) AS translated_text FROM (SELECT text FROM `bigquery-public-data.hacker_news.full` LIMIT 3);
Les résultats sont semblables aux suivants :
+---------------------------------------------------------------------------+ | 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. | +---------------------------------------------------------------------------+
Supprimer les ressources
Si vous ne prévoyez pas d'utiliser ces fonctions dans ce projet, vous pouvez éviter de payer des coûts supplémentaires en supprimant votre projet. Toutes les ressources associées au projet seront définitivement supprimées.
- 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.
Étapes suivantes
- Découvrez comment utiliser les fonctions distantes dans BigQuery.
- Découvrez Translation.
- Découvrir Cloud Run Functions
- Découvrez Cloud Run.