Ce tutoriel explique comment écrire une fonction Cloud Run HTTP qui envoie une requête à BigQuery.
Objectifs
Au cours de ce tutoriel, vous allez :
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,
utilisez le simulateur de coût.
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Activez les API Artifact Registry, Cloud Run Admin et Cloud Build.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.- Configurez votre environnement de développement Cloud Run dans votre Google Cloud projet.
Si vous êtes soumis à une règle d'administration de restriction de domaine limitant les appels non authentifiés pour votre projet, vous devez accéder au service déployé comme décrit dans la section Tester les services privés.
Rôles requis
Pour obtenir les autorisations nécessaires pour déployer des services Cloud Run à partir de la source, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Développeur de source Cloud Run (
roles/run.sourceDeveloper) sur votre projet - Consommateur d'utilisation du service (
roles/serviceusage.serviceUsageConsumer) sur le service Cloud Run - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur l'identité du service - Utilisateur de job BigQuery (
roles/bigquery.jobUser) sur l'identité du service
Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre service Cloud Run communique avec Google Cloud des API, telles que les bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.
Rôles pour le compte de service Cloud Build
Vous ou votre administrateur devez attribuer le rôle IAM suivant au compte de service Cloud Build.
Cliquez ici pour afficher les rôles requis pour le compte de service Cloud Build
Cloud Build utilise automatiquement le
compte de service Compute Engine par défaut comme compte de service Cloud Build par défaut pour créer votre code source et votre ressource Cloud Run, sauf si vous remplacez ce comportement. Pour que
Cloud Build puisse créer vos sources, demandez à votre administrateur d'accorder
le rôle Créateur Cloud Run
(roles/run.builder) au compte de service Compute Engine par défaut
sur votre projet :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Remplacez PROJECT_NUMBER par votre Google Cloud
numéro de projet et PROJECT_ID par votre Google Cloud
ID de projet. Pour obtenir des instructions détaillées sur la recherche de votre ID et de votre numéro de projet,
consultez Créer
et gérer des projets.
La propagation de l'attribution du rôle de créateur Cloud Run au compte de service Compute Engine par défaut prend quelques minutes pour se propager.
Préparer l'application
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitVous pouvez également télécharger l'exemple sous forme de fichier zip et l'extraire.
Accédez au répertoire qui contient l'exemple de code :
cd nodejs-docs-samples/functions/v2/helloBigQueryConsultez l'exemple de code. L'exemple envoie une requête pour les mots qui se produisent au moins 400 fois dans l'ensemble de données spécifié, puis renvoie le résultat.
Déployer la fonction
Pour déployer la fonction avec un déclencheur HTTP :
Exécutez la commande suivante dans le répertoire contenant l'exemple de code :
gcloud run deploy FUNCTION \ --source . \ --function FUNCTION_ENTRYPOINT \ --base-image BASE_IMAGE \ --region REGION \ --allow-unauthenticated
Remplacez :
FUNCTION par le nom de la fonction que vous déployez, par exemple
my-bigquery-function. Vous pouvez omettre ce paramètre, mais dans ce cas le nom vous sera demandé.FUNCTION_ENTRYPOINT par le point d'entrée de votre fonction dans votre code source. Il s'agit du code que Cloud Run exécute lors de l'exécution de votre fonction. La valeur de cette option doit être un nom de fonction ou un nom de classe complet qui existe dans votre code source. Le point d'entrée que vous devez spécifier pour l'exemple de fonction est
helloBigQuery.BASE_IMAGE par l'environnement d'image de base de votre fonction, par exemple
nodejs24. Pour en savoir plus sur les images de base et les packages inclus dans chaque image, consultez la section Images de base des environnements d'exécution.REGION par la Google Cloud région dans laquelle vous souhaitez déployer votre fonction. Exemple :
europe-west1.
Facultatif :
- Si vous créez une fonction HTTP publique, par exemple un webhook, spécifiez l'option
--allow-unauthenticated. Cette option attribue le rôle Demandeur IAM Cloud Run à l'identifiant spécialallUser. Vous pouvez utiliser IAM pour modifier ce paramètre ultérieurement après avoir créé le service.
Tester la fonction
Une fois le déploiement de la fonction terminé, copiez la propriété
uri.Accédez à cet URI dans votre navigateur.
Une liste des mots correspondant aux critères de requête et le nombre d'occurrences de chaque mot dans l'ensemble de données cible doit s'afficher.
Libérer de l'espace
Pour éviter que des frais supplémentaires ne soient facturés sur votre Google Cloud compte, supprimez toutes les ressources que vous avez déployées avec ce tutoriel.
Supprimer le projet
Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous devez le conserver sans les modifications que vous avez ajoutées dans ce tutoriel, supprimez les ressources que vous avez créées pour ce tutoriel.
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
Pour supprimer le projet :
- Dans la Google Cloud console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.
Supprimer les ressources du tutoriel
Supprimez le service Cloud Run que vous avez déployé dans ce tutoriel. Les services Cloud Run n'entraînent pas de coûts tant qu'ils ne reçoivent pas de requêtes.
Pour supprimer votre service Cloud Run, exécutez la commande suivante :
gcloud run services delete SERVICE-NAME
Remplacez SERVICE-NAME par le nom du service.
Vous pouvez également supprimer des services Cloud Run à partir de la Google Cloud console.
Supprimez la configuration régionale
gcloudpar défaut que vous avez ajoutée lors de la configuration du tutoriel :gcloud config unset run/regionSupprimez la configuration du projet :
gcloud config unset project