Créer et gérer des instances Cloud Run

Cette page explique comment créer et gérer des instances Cloud Run singleton adressables individuellement. Contrairement aux services Cloud Run qui évoluent en fonction du trafic entrant, une instance est un conteneur de calcul dédié que vous gérez manuellement à l'aide de transitions de cycle de vie (créer, arrêter, démarrer, mettre à jour, supprimer).

Régions où le service est disponible

Vous pouvez créer des instances Cloud Run dans n'importe quelle région compatible, à l'exception des régions suivantes :

  • europe-west1
  • us-central1
  • us-east1

Avant de commencer

  1. Configurez un nouveau projet pour Cloud Run, comme décrit sur la page de configuration.

  2. Activez l'API Cloud Run Admin :

    gcloud services enable run.googleapis.com
    
  3. Mettez à jour les composants gcloud vers la dernière version :

    gcloud components update
  4. 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 configurer et déployer des instances Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :

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 instance Cloud Run communique avec des APIGoogle Cloud , telles que des 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.

Créer une instance

Vous pouvez déployer une image de conteneur pour créer une instance. Si vous ne fournissez pas de nom, un nom est généré automatiquement.

gcloud

Pour créer une instance Cloud Run à l'aide de la commande gcloud beta run instances create :

gcloud beta run instances create INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

Pour créer une instance Cloud Run à l'aide de la commande gcloud beta run instances deploy :

gcloud beta run instances deploy INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance que vous créez. Le nom de l'instance doit être unique dans votre projet et votre région. Vous ne pouvez pas créer d'instance portant le même nom qu'une instance ou un service Cloud Run existants.
  • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/instances:latest.
  • REGION : région Google Cloud dans laquelle vous exécutez votre instance, par exemple europe-west1.

Bibliothèques clientes

Pour créer une instance à partir du code :

API REST

Pour créer une instance Cloud Run, envoyez une requête HTTP POST au point de terminaison instances.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "containers": [{
      "image": "IMAGE_URL",
      "ports": [{"containerPort": PORT}]
    }],
    "ingress": "INGRESS_TRAFFIC_ALL",
    "invokerIamDisabled": true,
    "timeout": "3600s"
  }' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances?instance_id=INSTANCE_NAME"

Remplacez les éléments suivants :

  • IMAGE_URL : URL de votre image de conteneur.
  • PORT : port sur lequel votre conteneur écoute.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • REGION : Google Cloud région de votre déploiement.
  • INSTANCE_NAME : nom de votre nouvelle instance.

Une fois l'instance créée, elle reçoit une URL Cloud Run au format suivant :

https://INSTANCE_NAME-PROJECT_NUMBER.REGION.run.app

Mettre à jour une instance

Lorsque vous mettez à jour une instance, par exemple son image de conteneur, son port ou ses variables d'environnement, elle est redémarrée.

gcloud

Pour mettre à jour une instance Cloud Run à l'aide de la commande gcloud beta run instances update :

gcloud beta run instances update INSTANCE_NAME \
    --image NEW_IMAGE_URL \
    --region REGION

Pour mettre à jour une instance Cloud Run à l'aide de la commande gcloud beta run instances deploy :

gcloud beta run instances deploy INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

API REST

Pour mettre à jour la configuration d'une instance Cloud Run à partir de l'API, envoyez une requête HTTP PATCH au point de terminaison de l'URI de l'instance.

curl -H "Content-Type: application/json" \
  -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

Arrêter une instance

Utilisez la commande ou la méthode d'arrêt pour arrêter une instance Cloud Run en cours d'exécution.

gcloud

Pour arrêter une instance, procédez comme suit :

gcloud beta run instances stop INSTANCE_NAME \
    --region REGION

Bibliothèques clientes

Pour arrêter une instance en cours d'exécution à partir du code :

API REST

Pour arrêter une instance, envoyez une requête HTTP POST avec le décorateur :stop :

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:stop"

Démarrer ou redémarrer une instance

Utilisez la commande ou la méthode "start" pour démarrer une instance arrêtée ou forcer le redémarrage d'une instance existante.

gcloud

Pour démarrer ou redémarrer une instance :

gcloud beta run instances start INSTANCE_NAME \
    --region REGION

Bibliothèques clientes

Pour démarrer une instance arrêtée à partir du code :

API REST

Pour démarrer une instance, envoyez une requête HTTP POST avec le décorateur :start :

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:start"

Afficher la liste des instances de votre projet

Vous pouvez afficher toutes les instances actives et inactives de votre projet.

gcloud

Pour lister les instances d'une région spécifique :

gcloud beta run instances list \
    --region REGION

Remplacez REGION par la région Google Cloud dans laquelle vous exécutez votre instance.

Bibliothèques clientes

Pour lister les instances actives et inactives à partir du code :

API REST

Pour récupérer la liste des instances, envoyez une requête HTTP GET :

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances"

Afficher les détails de l'instance

Utilisez la commande ou la méthode "describe" pour afficher les détails de la configuration et l'état actuel.

gcloud

Pour décrire une instance :

gcloud beta run instances describe INSTANCE_NAME \
    --region REGION

Bibliothèques clientes

Pour afficher les détails et l'état de la configuration d'une instance à partir du code :

API REST

Pour décrire une instance, envoyez une requête HTTP GET :

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

Supprimer une instance

Supprimez une instance pour supprimer définitivement sa configuration, ses métadonnées, son mappage d'URL directe publique et ses rôles d'identité de votre projet.

gcloud

Pour supprimer une instance, procédez comme suit :

gcloud beta run instances delete INSTANCE_NAME \
    --region REGION

Bibliothèques clientes

Pour supprimer une instance à partir du code :

API REST

Pour supprimer une instance, envoyez une requête HTTP DELETE :

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

Étapes suivantes