Cette page explique comment créer et mettre à jour des jobs Cloud Run à partir d'une image de conteneur existante. Contrairement à un service Cloud Run, qui écoute et diffuse les requêtes, un job Cloud Run n'exécute que ses tâches et se ferme une fois qu'elle a terminé. Un job n'écoute pas et ne diffuse pas les requêtes.
Après avoir créé ou mis à jour un job, vous pouvez :
- Exécuter le job de manière unique, planifiée ou dans le cadre d'un workflow.
- Vous pouvez remplacer les paramètres configurés pour un job lorsque vous exécutez un job.
- Vous pouvez gérer des exécutions de jobs individuels et afficher les journaux d'exécution.
Vous pouvez structurer un job en tant que tâche unique ou en tant que plusieurs tâches indépendantes (jusqu'à 10 000 tâches) pouvant être exécutées en parallèle. Chaque tâche exécute une instance de conteneur et peut être configurée de manière à être relancée en cas d'échec. Chaque opération connaît son index, qui est stocké dans la variable d'environnement CLOUD_RUN_TASK_INDEX
. Le nombre total de tâches est stocké dans la variable d'environnement CLOUD_RUN_TASK_COUNT
. Si vous traitez des données en parallèle, votre code est chargé de déterminer quelle tâche gère quel sous-ensemble de données.
Vous pouvez définir des délais avant expiration sur des tâches et spécifier le nombre de tentatives en cas d'échec de la tâche. Si une tâche dépasse son nombre maximal de tentatives, elle est marquée comme failed (échec). Si certaines tâches ont échoué, l'exécution du job est marquée comme failed (échec) une fois que Cloud Run a essayé toutes les tâches.
Par défaut, chaque tâche s'exécute pendant 10 minutes maximum. Vous pouvez modifier la valeur par défaut en modifiant le paramètre de délai avant expiration des tâches, jusqu'à 168 heures (7 jours) maximum. La prise en charge des délais avant expiration supérieurs à 24 heures est disponible en preview.
Il n'y a pas de délai explicite pour l'exécution d'un job : lorsque toutes les tâches sont terminées, l'exécution du job est terminé.
Les jobs utilisent l'environnement d'exécution de deuxième génération.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des jobs Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Développeur Cloud Run (
roles/run.developer
) sur le job Cloud Run -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur l'identité du service -
Lecteur Artifact Registry (
roles/artifactregistry.reader
) sur le dépôt Artifact Registry des images de conteneur de la tâche
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 job 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.
Registres de conteneurs et images acceptés
Vous pouvez utiliser directement des images de conteneurs stockées dans Artifact Registry ou Docker Hub. Nous vous recommandons d'utiliser Artifact Registry.
Vous pouvez utiliser des images de conteneurs provenant d'autres registres publics ou privés (tels que JFrog Artifactory, Nexus ou GitHub Container Registry) en configurant un dépôt Artifact Registry distant.
Envisagez d'utiliser Docker Hub uniquement pour déployer des images de conteneurs populaires, telles que des images officielles Docker ou des images OSS sponsorisées par Docker. Pour accroître la disponibilité, Google recommande de déployer ces images Docker Hub via un dépôt Artifact Registry distant.
Cloud Run n'est pas compatible avec les calques d'image de conteneur de plus de 9,9 Go lors du déploiement à partir de Docker Hub ou d'un dépôt distant Artifact Registry avec un registre externe.
Créer un job
Vous pouvez créer un job à l'aide de la console Google Cloud, de Google Cloud CLI, de YAML ou de Terraform.
Console
Pour créer un job, procédez comme suit :
Dans la console Google Cloud, accédez à la page Cloud Run :
Cliquez sur Déployer un conteneur et sélectionnez Job pour afficher le formulaire Créer un job.
- Dans le formulaire, spécifiez l'image de conteneur contenant le code de la tâche ou sélectionnez-la dans la liste des conteneurs précédemment déployés.
- Le nom de la tâche est généré automatiquement à partir de l'image du conteneur. Vous pouvez modifier le nom de la tâche si nécessaire. Un nom de tâche ne peut plus être modifié une fois que la tâche a été créée.
- Sélectionnez la région dans laquelle vous souhaitez créer votre tâche. Le sélecteur de région met en avant les régions ayant l'impact carbone le plus faible.
- Spécifiez le nombre de tâches que vous souhaitez exécuter dans le job. Toutes les tâches doivent réussir pour que le job aboutisse. Par défaut, les tâches s'exécutent en parallèle.
Cliquez sur Conteneur(s), volumes, mise en réseau, sécurité pour définir d'autres propriétés de job.
- Sous "Capacité de l'opération" :
- Dans le menu Mémoire, spécifiez la quantité de mémoire requise. La valeur par défaut est la valeur minimale requise (512 Mio).
- Dans le menu déroulant Processeur, spécifiez la quantité de processeurs requise. La valeur par défaut est la configuration minimale requise (un processeur).
Sous Délai avant expiration de la tâche, spécifiez la durée maximale en secondes pendant laquelle la tâche peut être exécutée, dans la limite de 168 heures (7 jours). La prise en charge des délais avant expiration supérieurs à 24 heures est disponible en version Preview. Chaque tâche doit être terminée dans ce délai. La valeur par défaut est de 10 minutes (600 secondes).
Sous Nombre de nouvelles tentatives par tâche en échec, spécifiez le nombre de tentatives en cas d'échec de la tâche. La valeur par défaut est de trois nouvelles tentatives.
Sous "Parallélisme" :
- Dans la plupart des cas, vous pouvez sélectionner Exécuter simultanément autant de tâches que possible.
- Si vous devez définir une limite inférieure en raison de contraintes de scaling sur les ressources auxquelles votre job accède, sélectionnez Limiter le nombre maximal de tâches simultanées et spécifiez le nombre de tâches simultanées dans le champ Limite de parallélisme personnalisée.
Vous pouvez également configurer d'autres paramètres dans les onglets appropriés :
Une fois la tâche configurée, cliquez sur Créer pour créer la tâche dans Cloud Run.
Pour exécuter le job, consultez la page Exécuter des jobs ou Exécuter des jobs selon un calendrier.
gcloud
Pour utiliser la ligne de commande, vous devez déjà avoir configuré gcloud CLI.
Pour créer un job, procédez comme suit :
Exécutez la commande suivante :
Vous pouvez également utiliser la commande de déploiement :gcloud run jobs create JOB_NAME --image IMAGE_URL OPTIONS
gcloud run jobs deploy JOB_NAME --image IMAGE_URL OPTIONS
- Remplacez
JOB_NAME
par le nom de la tâche que vous souhaitez créer. Si vous omettez ce paramètre, le nom de la tâche vous sera demandé lorsque vous exécuterez la commande. - Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/job:latest
. Vous pouvez également remplacer
OPTIONS
par l'une des options suivantes :Option Description --tasks
Accepte les entiers supérieurs ou égaux à 1. La valeur par défaut est 1. La valeur maximale est 10 000. Chaque tâche reçoit les variables d'environnement CLOUD_RUN_TASK_INDEX
avec une valeur comprise entre 0 et le nombre de tâches moins 1, ainsi queCLOUD_RUN_TASK_COUNT
, qui correspond au nombre de tâches.--max-retries
Nombre de nouvelles tentatives d'exécution d'une tâche ayant échoué. Lorsqu'une tâche dépasse cette limite, l'intégralité de la tâche est marquée comme étant en échec. Par exemple, si vous définissez la valeur sur 1, une tâche ayant échoué est relancée une seule fois, soit un total de deux tentatives. La valeur par défaut est 3. Accepte les entiers compris entre 0 et 10. --task-timeout
Accepte une durée telle que "2s". La valeur par défaut est de 10 minutes. La valeur maximale est de 168 heures (7 jours). La prise en charge des délais avant expiration supérieurs à 24 heures est disponible en version Preview. --parallelism
Nombre maximal de tâches pouvant s'exécuter en parallèle. Par défaut, les tâches sont démarrées aussi rapidement que possible en parallèle. Pour connaître la plage de valeurs, consultez la page Parallélisme. --execute-now
Si ce champ est défini immédiatement après la création de la tâche, une exécution de tâche démarre. Équivaut à l'appel de gcloud run jobs create
suivi degcloud run jobs execute
.Outre les options ci-dessus, vous spécifiez d'autres éléments de configuration, tels que des variables d'environnement ou des limites de mémoire.
Pour obtenir la liste complète des options disponibles lors de la création d'une tâche, reportez-vous à la documentation de ligne de commande portant sur gcloud run jobs create.
- Remplacez
Patientez pendant la création de la tâche. Un message de réussite s'affiche une fois l'opération terminée.
Pour exécuter le job, consultez la page Exécuter des jobs ou Exécuter des jobs selon un calendrier.
YAML
Vous pouvez stocker votre spécification de tâche dans un fichier YAML
, puis la déployer à l'aide de gcloud CLI.
Créez un fichier
job.yaml
avec le contenu suivant :apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE
Remplacer
- JOB par le nom de votre tâche Cloud Run Les noms de tâche doivent comporter un maximum de 49 caractères et être uniques par région et par projet.
- IMAGE par l'URL de l'image du conteneur de la tâche.
Vous pouvez également spécifier d'autres éléments de configuration, tels que des variables d'environnement ou des limites de mémoire.
Déployez la nouvelle tâche à l'aide de la commande suivante :
gcloud run jobs replace job.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Pour créer un job Cloud Run, utilisez la ressource google_cloud_run_v2_job
et modifiez votre fichier main.tf
comme indiqué dans l'extrait suivant.
Bibliothèques clientes
Pour créer un job à partir du code, procédez comme suit :
API REST
Pour créer un job, envoyez une requête HTTP POST
au point de terminaison jobs
de l'API Cloud Run Admin.
Exemple, à l'aide de curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{template: {template: {containers: [{image: "IMAGE_URL"}]}}}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB_NAME
Remplacez :
- ACCESS_TOKEN par un jeton d'accès valide pour un compte disposant des autorisations IAM pour créer des jobs.
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. - JOB_NAME par le nom du job que vous souhaitez créer.
- IMAGE_URL par l'URL de l'image de conteneur du job (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest
). - REGION par la Google Cloud région du job.
- PROJECT_ID par l' Google Cloud ID du projet.
Emplacements Cloud Run
Cloud Run est régional, ce qui signifie que l'infrastructure qui exécute vos services Cloud Run est située dans une région spécifique et gérée par Google pour être disponible de manière redondante dans toutes les zones de cette région.
Lors de la sélection de la région dans laquelle exécuter vos services Cloud Run, vous devez tout d'abord considérer vos exigences en matière de latence, de disponibilité et de durabilité.
Vous pouvez généralement sélectionner la région la plus proche de vos utilisateurs, mais vous devez tenir compte de l'emplacement des autres produits Google Cloud utilisés par votre service Cloud Run.
L'utilisation conjointe de produits Google Cloud dans plusieurs emplacements peut avoir une incidence sur la latence et le coût de votre service.
Cloud Run est disponible dans les régions suivantes :
Soumis aux tarifs de niveau 1
asia-east1
(Taïwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)asia-south1
(Mumbai, Inde)europe-north1
(Finlande)Faibles émissions de CO2
europe-southwest1
(Madrid)Faibles émissions de CO2
europe-west1
(Belgique)Faibles émissions de CO2
europe-west4
(Pays-Bas)Faibles émissions de CO2
europe-west8
(Milan)europe-west9
(Paris)Faibles émissions de CO2
me-west1
(Tel Aviv)us-central1
(Iowa)Faibles émissions de CO2
us-east1
(Caroline du Sud)us-east4
(Virginie du Nord)us-east5
(Columbus)us-south1
(Dallas)Faibles émissions de CO2
us-west1
(Oregon)Faibles émissions de CO2
Soumis aux tarifs de niveau 2
africa-south1
(Johannesburg)asia-east2
(Hong Kong)asia-northeast3
(Séoul, Corée du Sud)asia-southeast1
(Singapour)asia-southeast2
(Jakarta)asia-south2
(Delhi, Inde)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Varsovie, Pologne)europe-west10
(Berlin)Faibles émissions de CO2.
europe-west12
(Turin)europe-west2
(Londres, Royaume-Uni)Faibles émissions de CO2
europe-west3
(Francfort, Allemagne)Faibles émissions de CO2
europe-west6
(Zurich, Suisse)Faibles émissions de CO2
me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montréal)Faibles émissions de CO2
northamerica-northeast2
(Toronto)Faibles émissions de CO2
southamerica-east1
(São Paulo, Brésil)Faibles émissions de CO2
southamerica-west1
(Santiago, Chili)Faibles émissions de CO2
us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Si vous avez déjà créé un service Cloud Run, vous pouvez afficher la région dans le tableau de bord Cloud Run de la console Google Cloud.
Lorsque vous créez un job, l'agent de service Cloud Run doit pouvoir accéder au conteneur, ce qui est le cas par défaut.
Mettre à jour un job existant
La modification des paramètres de configuration nécessite de mettre à jour la tâche, même si l'image du conteneur ne change pas. Notez que pour les paramètres inchangés, les paramètres précédents continuent d'être utilisés.
Vous pouvez mettre à jour un job existant à l'aide de la console Google Cloud, de Google Cloud CLI, de YAML ou de Terraform.
Console
Pour mettre à jour un job existant :
Dans la console Google Cloud, accédez à la page Cloud Run :
Cliquez sur l'onglet Tâches pour afficher la liste des tâches.
Cliquez sur le job pour afficher la page Informations sur le job.
Cliquez sur Modifier.
Si vous avez modifié le code de votre tâche, spécifiez le nouveau condensé de l'image du conteneur.
Si nécessaire, modifiez le nombre de tâches figurant dans le job.
Vous pouvez également cliquer sur Conteneur(s), volumes, mise en réseau et sécurité pour mettre à jour d'autres propriétés du job :
- Sous "Capacité de l'opération" :
- Dans le menu Mémoire, spécifiez la quantité de mémoire requise. La valeur par défaut est la valeur minimale requise (512 Mio).
- Dans le menu déroulant Processeur, spécifiez la quantité de processeurs requise. La valeur par défaut est la configuration minimale requise (un processeur).
- Sous Délai avant expiration de la tâche, spécifiez la durée maximale en secondes pendant laquelle la tâche peut être exécutée, dans la limite de 168 heures (7 jours). La prise en charge des délais avant expiration supérieurs à 24 heures est disponible en version Preview. Chaque tâche doit être terminée dans ce délai. La valeur par défaut est de 10 minutes (600 secondes).
- Sous Nombre de nouvelles tentatives par tâche en échec, spécifiez le nombre de tentatives en cas d'échec de la tâche. La valeur par défaut est de trois nouvelles tentatives.
Sous "Parallélisme" :
- Dans la plupart des cas, vous pouvez sélectionner Exécuter simultanément autant de tâches que possible.
- Si vous devez définir une limite inférieure en raison de contraintes de scaling sur les ressources auxquelles votre job accède, sélectionnez Limiter le nombre maximal de tâches simultanées et spécifiez le nombre maximal de tâches simultanées dans le champ Limite de parallélisme personnalisée.
Vous pouvez également configurer d'autres paramètres dans les onglets appropriés :
Une fois la tâche configurée, cliquez sur Enregistrer pour créer la tâche dans Cloud Run et attendez la fin de la création de la tâche.
Pour exécuter le job, consultez la page Exécuter des jobs ou Exécuter des jobs selon un calendrier.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande suivante :
gcloud run jobs update JOB_NAME
Remplacez :
JOB_NAME
par le nom de la tâche que vous souhaitez mettre à jour.Vous pouvez également remplacer
OPTIONS
par les options suivantes :Option Description --tasks
Accepte les entiers supérieurs ou égaux à 1. La valeur par défaut est 1. La valeur maximale est 10 000. Chaque tâche reçoit les variables d'environnement CLOUD_RUN_TASK_INDEX
avec une valeur comprise entre 0 et le nombre de tâches moins 1, ainsi queCLOUD_RUN_TASK_COUNT
, qui correspond au nombre de tâches.--max-retries
Nombre de nouvelles tentatives d'exécution d'une tâche ayant échoué. Lorsqu'une tâche dépasse cette limite, l'intégralité de la tâche est marquée comme étant en échec. Par exemple, si vous définissez la valeur sur 1, une tâche ayant échoué est relancée une seule fois, soit un total de deux tentatives. La valeur par défaut est 3
. Accepte les entiers compris entre 0 et 10.--task-timeout
Accepte une durée telle que "2s". La valeur par défaut est de 10 minutes. La valeur maximale est de 168 heures (7 jours). La prise en charge des délais avant expiration supérieurs à 24 heures est disponible en version Preview. --parallelism
Nombre maximal de tâches pouvant s'exécuter en parallèle. Par défaut, les tâches sont démarrées aussi rapidement que possible en parallèle. Pour connaître la plage de valeurs, consultez la page Parallélisme.
Outre les options précédentes, vous pouvez définir d'autres paramètres de configuration facultatifs:
- Configuration des conteneurs
- Limites de processeur
- Limites de mémoire
- Secrets
- Variables d'environnement
- Libellés
- Comptes de service
- Connexions Cloud SQL
- Connexion VPC
Pour obtenir la liste complète des options disponibles lors de la création d'une tâche, reportez-vous à la documentation de ligne de commande portant sur gcloud run jobs create.
Patientez jusqu'à la fin de la mise à jour de la tâche. Une fois l'opération achevée, un message de réussite semblable au suivant s'affiche :
Job [JOB_NAME] has been successfully updated. View details about this job by running `gcloud run jobs describe JOB_NAME`. See logs for this execution at: https://console.cloud.google.com/logs/viewer?project=PROJECT_ID&resource=cloud_run_revision/service_name/JOB_NAME
Pour exécuter le job, consultez la page Exécuter des jobs ou Exécuter des jobs selon un calendrier.
YAML
Si vous devez télécharger ou consulter la configuration d'une tâche existante, exécutez la commande suivante pour enregistrer les résultats dans un fichier YAML :
gcloud run jobs describe JOB --format export > job.yaml
Dans un fichier YAML de configuration de tâche, modifiez les attributs enfants spec.template
en fonction de vos besoins pour mettre à jour les paramètres de configuration, puis redéployez votre application:
Mettez à jour la configuration de job existante :
gcloud run jobs replace job.yaml
Pour exécuter le job, consultez la page Exécuter des jobs ou Exécuter des jobs selon un calendrier.
Terraform
Modifiez la configuration de votre job dans votre fichier main.tf
à l'aide de la commande terraform apply
. Des instructions Terraform détaillées sont disponibles pour :
Pour en savoir plus, consultez les options de ligne de commande terraform apply
.
Bibliothèques clientes
Pour mettre à jour un job existant à partir du code, procédez comme suit :
API REST
Pour mettre à jour un job, envoyez une requête HTTP PATCH
au point de terminaison jobs
de l'API Cloud Run Admin.
Exemple, à l'aide de curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{template: {template: {containers: [{image: "IMAGE_URL"}]}}}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME
Remplacez :
- ACCESS_TOKEN par un jeton d'accès valide pour un compte disposant des autorisations IAM pour mettre à jour des jobs.
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. - JOB_NAME par le nom du job que vous souhaitez mettre à jour.
- IMAGE_URL par l'URL de l'image de conteneur du job (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest
). - REGION par la Google Cloud région du job.
- PROJECT_ID par l' Google Cloud ID du projet.
Exemple de code
Pour obtenir des exemples de code montrant des tâches, consultez les guides de démarrage rapide spécifiques au langage.
Déployer plusieurs conteneurs dans un job (side-cars)
Dans un déploiement de tâche Cloud Run avec plusieurs conteneurs (side-cars), il existe un conteneur de tâche principal qui encapsule la configuration de la tâche et un ou plusieurs conteneurs side-car.
Vous pouvez déployer jusqu'à 10 conteneurs par instance (y compris le conteneur de tâche principal). Tous les conteneurs d'une instance partagent le même espace de noms réseau et peuvent partager des fichiers via un volume partagé en mémoire.
Cas d'utilisation
Les sidecars sont couramment utilisés dans les cas d'utilisation suivants:
- Récupérer des métriques personnalisées à partir des tâches Cloud Run et les envoyer à un backend spécifié de votre choix à l'aide d'agents de collecte, tels que Prometheus ou OpenTelemetry.
- Permettre aux applications sans logique Hashicorp Vault intégrée d'utiliser des secrets statiques et dynamiques issus de Vault à l'aide du sidecar Vault.
Déployer une tâche avec des conteneurs side-car
Vous pouvez déployer plusieurs side-cars sur un job Cloud Run à l'aide de la console Google Cloud, de Google Cloud CLI ou de YAML.
Cliquez sur l'onglet pour obtenir des instructions concernant l'utilisation de l'outil de votre choix.
Console
Dans la console Google Cloud, accédez à la page Cloud Run :
Pour déployer un job existant, cliquez sur Jobs (Tâches), recherchez le job dans la liste, puis cliquez dessus pour l'ouvrir. Cliquez ensuite sur View and edit configuration (Afficher et modifier la configuration) pour afficher le formulaire de modification du job.
Pour une nouvelle tâche, cliquez sur Déployer un conteneur, puis sur Tâche. Indiquez le nom de la tâche et l'URL de l'image de conteneur de tâche principale que vous souhaitez déployer.
Cliquez sur Conteneur(s), volumes, mise en réseau, sécurité.
Dans la fiche Modifier le conteneur, configurez le conteneur de tâche principal si nécessaire.
Cliquez sur Ajouter un conteneur et configurez un conteneur side-car que vous souhaitez ajouter avec le conteneur de tâche principal. Si le side-car dépend d'un autre conteneur du service, indiquez-le dans le menu déroulant Ordre de démarrage du conteneur. Répétez cette étape pour chaque conteneur side-car que vous déployez.
Cliquez sur Créer pour un nouveau service ou sur Mettre à jour pour une tâche existante, puis attendez la fin du déploiement.
gcloud
Les paramètres container
dans Google Cloud CLI sont disponibles en version bêta.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Pour déployer plusieurs conteneurs dans une tâche, exécutez la commande suivante:
gcloud beta run jobs create JOB \ --container JOB_CONTAINER_NAME \ --image='JOB_IMAGE' \ --container SIDECAR_CONTAINER_NAME \ --image='SIDECAR_IMAGE'
Remplacez :
- JOB par le nom de la tâche sur laquelle vous déployez l'image. Vous pouvez omettre ce paramètre, mais dans ce cas, le nom de la tâche vous sera demandé.
- JOB_CONTAINER_NAME par un nom pour le conteneur de tâche principal.
- JOB_IMAGE par une référence à l'image du conteneur de tâche principal, par exemple
us-docker.pkg.dev/cloudrun/container/job:latest
. - SIDECAR_CONTAINER_NAME par le nom du conteneur side-car, par exemple
sidecar
. - SIDECAR_IMAGE par une référence à l'image de conteneur side-car.
Si vous souhaitez configurer chaque conteneur dans la commande de déploiement, indiquez la configuration de chaque conteneur après les paramètres
container
, par exemple :gcloud beta run jobs create JOB \ --container CONTAINER_1_NAME \ --image='JOB_IMAGE' \ --set-env-vars=KEY=VALUE \ --container SIDECAR_CONTAINER_NAME \ --image='SIDECAR_IMAGE' \ --set-env-vars=KEY_N=VALUE_N
Attendez la fin du déploiement des tâches. Une fois l'opération terminée, un message de réussite s'affiche.
YAML
Ces instructions présentent un fichier YAML de base pour votre tâche Cloud Run avec side-cars.
Créez un fichier nommé job.yaml
contenant les éléments suivants :
apiVersion: run.googleapis.com/v1 kind: Job metadata: annotations: run.googleapis.com/launch-stage: BETA name: JOB spec: template: spec: containers: - image: JOB_IMAGE - image: SIDECAR_IMAGE
Remplacez :
- JOB par le nom du conteneur de tâche principal Cloud Run. Les noms de job ne doivent pas comporter plus de 49 caractères.
- JOB_IMAGE par une référence à l'image du conteneur de tâche principal, par exemple
us-docker.pkg.dev/cloudrun/container/job:latest
. Vous pouvez également fournir les entrées de configuration de conteneur nécessaires après cette entrée. - SIDECAR_IMAGE par une référence à l'image de conteneur side-car. Vous pouvez éventuellement fournir les entrées de configuration de conteneur nécessaires après cette entrée.Vous pouvez spécifier plusieurs side-cars en ajoutant d'autres éléments dans le tableau
containers
du fichier YAML.
Après avoir mis à jour le fichier YAML pour inclure les conteneurs d'entrée et side-car, déployez sur Cloud Run à l'aide de la commande suivante :
gcloud run jobs replace job.yaml
Fonctionnalités disponibles pour les déploiements avec side-cars
Vous pouvez spécifier l'ordre de démarrage des conteneurs dans un déploiement comportant plusieurs conteneurs, si vous avez des dépendances nécessitant le démarrage de certains conteneurs avant d'autres conteneurs dans le déploiement.
Si vous avez des conteneurs qui dépendent d'autres conteneurs, vous devez utiliser des vérifications d'état de démarrage dans votre déploiement. Si vous utilisez les vérifications d'état, Cloud Run suit l'ordre de démarrage des conteneurs et inspecte l'état de chaque conteneur, afin de s'assurer que chaque conteneur réussit avant que Cloud Run ne démarre le conteneur suivant dans l'ordre. Si vous n'utilisez pas les vérifications d'état, les conteneurs opérationnels démarrent même si les conteneurs dont ils dépendent ne sont pas en cours d'exécution.
Plusieurs conteneurs d'une même instance peuvent accéder à un volume en mémoire partagé, qui est accessible à chaque conteneur via des points d'installation que vous créez.
Étape suivante
Après avoir créé ou mis à jour un job, vous pouvez effectuer les opérations suivantes :
- Exécuter une tâche
- Exécuter une tâche selon un calendrier
- Gérer les jobs
- Gérer l'exécution des tâches
- Afficher les journaux de tâches
- Surveiller les performances des tâches
- Définir les limites de mémoire
- Définir des variables d'environnement