Gérer les services

Cette page décrit comment créer un service et afficher les informations associées.

Chaque service dispose d'une URL run.app unique et permanente qui ne changera pas au fil du temps lorsque vous déploierez de nouvelles révisions. Les fonctions déployées sur Cloud Run sont également traitées comme un service et une adresse run.app leur est attribuée. Le domaine permanent du service est constitué du nom du service et d'un hachage.

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les services et les révisions Cloud Run, demandez à votre administrateur de vous accorder le rôle IAM Développeur Cloud Run (roles/run.developer) sur votre service Cloud Run.

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les pages Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre service Cloud Run communique avec les API Google Cloud, 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 sections Autorisations de déploiement et Gérer les accès.

créer un service ;

Vous créez un service en y déployant une image de conteneur pour la première fois. Pour obtenir davantage d'instructions, consultez la page Déployer un nouveau service.

Afficher la liste des services de votre projet

Vous pouvez afficher la liste des services disponibles dans votre projet à l'aide de Google Cloud Console ou de la ligne de commande gcloud :

Console

Pour afficher la liste des services, procédez comme suit :

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Examinez la liste des services affichés pour votre projet :

    liste de services

gcloud

Pour afficher la liste des services de votre projet, procédez comme suit :

gcloud run services list

Chaque service a une URL associée.

Vous pouvez filtrer cette liste suivant les propriétés de la définition de service, telles qu'un libellé attribué.

Cloud Code

Pour afficher la liste des services avec Cloud Code, consultez les guides de l'explorateur Cloud Run pour IntelliJ et Visual Studio Code.

Bibliothèques clientes

Pour afficher la liste des services à partir du code, procédez comme suit :

API REST

Pour afficher la liste des services dans votre projet, envoyez une requête HTTP GET au point de terminaison service de l'API Cloud Run Admin.

Exemple, à l'aide de curl :

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X GET \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services

Remplacez :

  • ACCESS_TOKEN par un jeton d'accès valide pour un compte disposant des autorisations IAM pour afficher les services. Par exemple, si vous êtes connecté à gcloud, vous pouvez récupérer un jeton d'accès à l'aide de gcloud auth print-access-token. À partir d'une instance de conteneur Cloud Run, vous pouvez récupérer un jeton d'accès via le serveur de métadonnées d'instance de conteneur.
  • REGION par la région Google Cloud du service.
  • PROJECT-ID par l'ID du projet Google Cloud.

Afficher la liste des fonctions de votre projet

Vous pouvez afficher la liste des fonctions disponibles dans votre projet à l'aide de la console Google Cloud:

Console

Pour filtrer les fonctions dans votre liste de services:

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Examinez la liste des services affichés pour votre projet :

    liste de services

  3. Sélectionnez Filtrer les services > Type de déploiement > Fonction.

    Si vous avez déjà déployé votre fonction à l'aide de l'API Cloud Functions (2e génération), la colonne Deployed by (Déployé par) affiche Cloud Functions (Fonctions Cloud).

Copier un service

Vous pouvez créer une copie d'un service existant à l'aide de Google Cloud Console ou de YAML. Vous pouvez modifier n'importe quel élément dans la copie, y compris le nom et la région.

Console

Pour copier un service, procédez comme suit :

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Sélectionnez le service à copier dans la liste des services affichés pour votre projet :

    liste de services

    1. Cliquez sur Copier.

    2. Sur la page de copie du service, définissez ou modifiez les valeurs que vous souhaitez changer, par exemple la région. Si vous conservez la même région, vous devez définir un nouveau nom de service.

    3. Cliquez sur Create (Créer) pour générer une copie et la déployer sous le nouveau nom du service.

YAML

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Apportez toutes les modifications souhaitées à la configuration du service.

     apiVersion: serving.knative.dev/v1
     kind: Service
     metadata:
       annotations:
         ...
       name: SERVICE
       ...
     spec:
       template:
         metadata:
           annotations:
           ...
           name: REVISION
    
    • Si vous ne déployez pas la copie dans une autre région, remplacez SERVICE par le nom que vous souhaitez utiliser pour la copie. Si vous déployez la copie dans une autre région, vous pouvez conserver l'ancien nom.
    • Remplacez REVISION par un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :
      • Commencer par SERVICE-
      • Ne contenir que des lettres minuscules, des chiffres et -
      • Ne pas se terminer par -
      • Ne pas dépasser 63 caractères
  3. Copiez le service à l'aide de la commande suivante :

    gcloud run services replace service.yaml

    Utilisez l'option --region pour déployer la copie dans une autre région.

Afficher plus de détails sur un service

Pour afficher davantage de détails sur un service, procédez comme suit :

Console

Pour afficher les détails d'un service, procédez comme suit :

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur le service souhaité dans la liste des services affichée pour votre projet afin d'ouvrir la vue DETAILS (Détails) du service :

gcloud

Pour afficher les détails d'un service, procédez comme suit :

gcloud run services describe SERVICE
Remplacez SERVICE par le nom du service.

Vous pouvez utiliser l'option --format pour formater le résultat. Par exemple, au format YAML :

gcloud run services describe SERVICE --region REGION --format yaml

Remplacez :

  • SERVICE par le nom du service ;
  • REGION par la région Google Cloud du service.

Vous pouvez utiliser --format export pour exporter au format YAML sans libellés ni états générés automatiquement :

gcloud run services describe SERVICE --region REGION --format export

Vous pouvez également utiliser l'option --format pour obtenir l'URL du service :

gcloud run services describe SERVICE --region REGION --format='value(status.url)'

Cloud Code

Pour afficher les détails d'un service avec Cloud Code, consultez les guides de l'explorateur Cloud Run pour IntelliJ et Visual Studio Code.

Pour plus de précisions sur les révisions de service, consultez la page Gérer les révisions.

Bibliothèques clientes

Pour afficher les détails d'un service à partir du code, procédez comme suit :

API REST

Pour afficher les détails d'un service, envoyez une requête HTTP GET au point de terminaison service de l'API Cloud Run Admin.

Exemple, à l'aide de curl :

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X GET \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME

Remplacez :

  • ACCESS_TOKEN par un jeton d'accès valide pour un compte disposant des autorisations IAM pour afficher les détails du service. Par exemple, si vous êtes connecté à gcloud, vous pouvez récupérer un jeton d'accès à l'aide de gcloud auth print-access-token. À partir d'une instance de conteneur Cloud Run, vous pouvez récupérer un jeton d'accès via le serveur de métadonnées d'instance de conteneur.
  • SERVICE-NAME par le nom du service ;
  • REGION par la région Google Cloud du service.
  • PROJECT-ID par l'ID du projet Google Cloud.

Désactiver un service existant

Pour obtenir les autorisations nécessaires pour désactiver un service et une révision Cloud Run existants, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Cloud Run (roles/run.admin) sur votre projet.

Cloud Run ne permet pas directement à un service de cesser de diffuser le trafic, mais vous pouvez obtenir un résultat similaire en révoquant l'autorisation d'appeler le service aux identités qui appellent le service. En particulier, si votre service est "public", supprimez allUsers du rôle Demandeur Cloud Run (roles/run.invoker).

Supprimer des services existants

Les points suivants doivent être pris en compte lors de la suppression d'un service :

  • La suppression d'un service supprime toutes les ressources associées à ce service, y compris toutes les révisions de ce service, qu'elles diffusent du trafic ou non.
  • La suppression d'un service ne supprime pas automatiquement les images de conteneurs de Container Registry. Pour supprimer de Container Registry les images de conteneur utilisées par des versions supprimées, reportez-vous à la section Supprimer des images.
  • La suppression d'un service avec un ou plusieurs déclencheurs Eventarc ne supprime pas automatiquement ces déclencheurs. Pour supprimer les déclencheurs, consultez la page Gérer les déclencheurs.
  • Après la suppression, le service reste visible dans la console Google Cloud et dans l'interface de ligne de commande jusqu'à la fin effective de sa suppression. Toutefois, vous ne pouvez pas mettre à jour le service.
  • La suppression d'un service est définitive : il n'y a aucune possibilité d'annulation ni de restauration. Toutefois, si après avoir supprimé un service, vous déployez un nouveau service portant le même nom dans la même région, il aura la même URL de point de terminaison.

Console

Pour supprimer un service, procédez comme suit :

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Recherchez le service que vous souhaitez supprimer dans la liste des services, puis cliquez la case correspondante pour le sélectionner.

  3. Cliquez sur DELETE (SUPPRIMER) pour supprimer toutes les révisions du service.

gcloud

Pour supprimer un service, utilisez la commande suivante :

gcloud run services delete SERVICE --region REGION

Remplacer

  • SERVICE par le nom de votre service.
  • REGION par la région Google Cloud du service.

Bibliothèques clientes

Pour supprimer un service du code, procédez comme suit :

API REST

Pour supprimer un service, envoyez une requête HTTP DELETE au point de terminaison service de l'API Cloud Run Admin.

Exemple, à l'aide de curl :

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X DELETE \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME

Remplacez :

  • ACCESS_TOKEN par un jeton d'accès valide pour un compte disposant des autorisations IAM pour supprimer un service. Par exemple, si vous êtes connecté à gcloud, vous pouvez récupérer un jeton d'accès à l'aide de gcloud auth print-access-token. À partir d'une instance de conteneur Cloud Run, vous pouvez récupérer un jeton d'accès via le serveur de métadonnées d'instance de conteneur.
  • SERVICE-NAME par le nom du service ;
  • REGION par la région Google Cloud du service.
  • PROJECT-ID par l'ID du projet Google Cloud.