Cette page explique comment configurer la commande entrypoint et les arguments associés pour un job Cloud Run.
Lorsque Cloud Run démarre un conteneur, il exécute la commande entrypoint par défaut et les arguments de commande par défaut de l'image. Si vous souhaitez ignorer la commande entrypoint et les arguments de commande par défaut de l'image, vous pouvez utiliser les champs command
et args
dans la configuration du conteneur. Le champ command
spécifie la commande réelle exécutée par le conteneur. Le champ args
spécifie les arguments transmis à cette commande.
Notez que vous pouvez avoir un maximum de 1 000 arguments par conteneur pour chaque job.
Cette page vous explique comment configurer la commande, les arguments et l'ordre de démarrage des conteneurs dans vos jobs Cloud Run. Vous pouvez configurer ces paramètres à l'aide de la consoleGoogle Cloud , de Google Cloud CLI ou de YAML.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer 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
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.
Configurer un point d'entrée et des arguments
Pour configurer la commande entrypoint et les arguments des tâches, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page des jobs Cloud Run :
Sélectionnez Jobs dans le menu, puis cliquez sur Déployer un conteneur pour remplir la page des paramètres initiaux du job. Si vous configurez un job existant, sélectionnez-le, puis cliquez sur Afficher et modifier la configuration du job.
Cliquez sur Conteneur(s), Volumes, Connexions, Sécurité pour développer la page des propriétés du job.
Cliquez sur l'onglet Général.
- Spécifiez la commande que le conteneur doit exécuter, s'il ne s'agit pas de la commande définie dans votre conteneur, et spécifiez éventuellement les arguments de la commande entrypoint.
Cliquez sur Créer ou Mettre à jour.
gcloud
Pour définir la commande de démarrage et les arguments d'une nouvelle tâche :
gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Remplacer
- JOB_NAME par le nom de votre job.
- COMMAND par la commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut.
- ARG1 par l'argument à envoyer à la commande du conteneur. Si vous avez plusieurs arguments, indiquez-les sous forme de liste en les séparant par une virgule, par exemple
--args="arg1", "arg2", "arg3"
. Si vos arguments contiennent des virgules ou des caractères spéciaux, consultez Utiliser des signes "égal" ou des virgules dans les arguments. - IMAGE_URL : référence à l'image de conteneur (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest
).
Pour mettre à jour les commandes et les arguments d'une tâche existante, procédez comme suit :
gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N
YAML
Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :
gcloud run jobs describe JOB_NAME --format export > job.yaml
Modifiez les attributs
args:
etcommand
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - args: - 'ARG1' - 'ARG-N' command: - COMMAND image: IMAGE
Remplacer
- COMMAND par la commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut.
- ARG1 par l'argument à envoyer à la commande du conteneur. Vous pouvez éventuellement spécifier des arguments supplémentaires sur une ligne distincte. Si vos arguments contiennent des virgules ou des caractères spéciaux, consultez Utiliser des signes "égal" ou des virgules dans les arguments.
Vous pouvez également spécifier d'autres éléments de configuration, tels que des variables d'environnement ou des limites de mémoire.
Mettez à jour la configuration de tâche existante :
gcloud run jobs replace job.yaml
Pour effacer les commandes entrypoint et les arguments que vous avez définis (restaurez sur les valeurs par défaut du conteneur), fournissez des chaînes vides comme suit :
gcloud run jobs update JOB_NAME --command "" --args ""
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Ajoutez les éléments suivants à une ressourcegoogle_cloud_run_v2_job
dans votre configuration Terraform :resource "google_cloud_run_v2_job" "default" {
name = "JOB_NAME"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
command = ["COMMAND"]
args = ["ARG1", "ARG-N"]
}
}
}
}
Remplacez :
- JOB_NAME par le nom de votre tâche Cloud Run
- REGION par la région Google Cloud . Exemple :
europe-west1
. - COMMAND par la commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut.
- ARG1 par l'argument à envoyer à la commande du conteneur. Vous pouvez éventuellement spécifier des arguments supplémentaires. Si vos arguments contiennent des virgules ou des caractères spéciaux, consultez Utiliser des signes "égal" ou des virgules dans les arguments.
Utiliser des signes "égal" ou des virgules dans les arguments
Si vous utilisez des signes "égal" dans vos arguments, indiquez-les au format suivant :
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
Si vos arguments utilisent des virgules, reportez-vous à la section Configurer des variables d'environnement pour savoir comment échapper ces caractères.
Afficher les paramètres du conteneur
Pour afficher les paramètres actuels du conteneur de votre tâche Cloud Run, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page des jobs Cloud Run :
Cliquez sur le job qui vous intéresse pour ouvrir la page Informations sur le job.
Cliquez sur Afficher et modifier la configuration du job.
Localisez le paramètre de conteneur dans les détails de la configuration.
gcloud
Exécutez la commande suivante :
gcloud run jobs describe JOB_NAME
Recherchez le paramètre de conteneur dans la configuration renvoyée.
Configurer l'ordre de démarrage des conteneurs pour les déploiements side-car
Pour spécifier l'ordre de démarrage des conteneurs dans un déploiement side-car, vous devez utiliser la fonctionnalité de dépendances de conteneurs. Vous spécifiez les conteneurs qui ont des dépendances et répertoriez les conteneurs dont ils dépendent. Les conteneurs sans dépendance sont toujours démarrés en premier et simultanément.
Vous pouvez utiliser la console Google Cloud , Google Cloud CLI ou YAML pour spécifier l'ordre de démarrage :
Console
Dans la console Google Cloud , accédez à la page Cloud Run :
- Pour un job existant, cliquez sur Jobs. Cliquez ensuite sur le job dans la liste et sélectionnez Afficher et modifier la configuration du job pour afficher le formulaire Modifier le job.
- Pour un nouveau job, cliquez sur Déployer un conteneur et sélectionnez Job pour afficher le formulaire Créer un job.
Pour un nouveau job, spécifiez le nom du job, l'URL du conteneur du job, la région et le nombre de tâches. Dans l'onglet Conteneur(s), volumes, mise en réseau, sécurité, procédez comme suit :
- Configurez le conteneur de job principal.
- Pour ajouter chacun des conteneurs side-car que vous déployez, cliquez sur Ajouter un conteneur.
- Si un conteneur dépend d'autres conteneurs, utilisez le menu Ordre de démarrage du conteneur pour sélectionner les conteneurs que Cloud Run doit démarrer avant le conteneur actuel.
Pour un job existant, procédez comme suit pour chaque conteneur :
- Examinez les conteneurs listés dans le menu Ordre de démarrage du conteneur.
- Si un conteneur dépend d'autres conteneurs, utilisez le menu Ordre de démarrage du conteneur pour sélectionner ces conteneurs.
Terminez toutes les autres configurations requises, puis cliquez sur Créer pour une nouvelle tâche ou sur Mettre à jour pour une tâche existante. Patientez jusqu'à la fin du déploiement.
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.
Pour déployer plusieurs conteneurs sur un job avec un ordre de démarrage spécifique, exécutez la commande suivante :
gcloud beta run create JOB \ --container CONTAINER_1_NAME --image='JOB_IMAGE' \ --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME
Remplacez :
- JOB par le nom du job sur lequel vous déployez l'image. Vous pouvez omettre ce paramètre, mais dans ce cas, le nom du job vous sera demandé.
- CONTAINER_1_NAME par le nom du conteneur de job principal.
- JOB_IMAGE par une référence à l'image de conteneur du job principal, par exemple
us-docker.pkg.dev/cloudrun/container/job:latest
. - CONTAINER_2_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
.Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :
gcloud run jobs describe JOB_NAME --format export > job.yaml
Mettez à jour l'attribut
container-dependencies
:apiVersion: run.googleapis.com/v1 kind: Job metadata: annotations: run.googleapis.com/launch-stage: BETA name: JOB spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
Remplacer
- CONTAINER1 par le nom du premier conteneur qui dépend d'un ou de plusieurs conteneurs. Notez que vous pouvez définir le nom du conteneur dans le fichier YAML : Cloud Run génère automatiquement un nom s'il n'est pas spécifié.
- CONTAINER2 par le nom du conteneur qui doit démarrer avant CONTAINER1.
- CONTAINER3 par le nom du second conteneur qui dépend d'un ou de plusieurs conteneurs.
Dans l'exemple présenté dans l'extrait de code YAML, CONTAINER2 démarre en premier, CONTAINER1 en deuxième et CONTAINER3 en dernier.
Créez ou mettez à jour le job à l'aide de la commande suivante :
gcloud run jobs replace job.yaml