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 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 via la Google Cloud console, Google Cloud CLI ou 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 Google Cloud des API, 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 Google Cloud console, accédez à la page Jobs de Cloud Run :
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 Conteneurs, 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 avec si vous n'utilisez pas la commande par défaut.
- ARG1 par l'argument à envoyer à la commande du conteneur. Pour plusieurs arguments,
utilisez une liste séparée par des virgules, par exemple
--args="arg1", "arg2", "arg3". Si vos arguments contiennent des virgules ou des caractères spéciaux, consultez la section 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: - image: IMAGE_URL args: - ARG1' - ARG-N command: - COMMAND
Remplacez les éléments suivants :
- IMAGE_URL : référence à l'
image de conteneur, par
exemple
us-docker.pkg.dev/cloudrun/container/job:latest. - COMMAND par la commande avec laquelle le conteneur doit démarrer avec 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 la section 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.
- IMAGE_URL : référence à l'
image de conteneur, par
exemple
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 à unegoogle_cloud_run_v2_job
ressource 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 Google Cloud région. 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 la section 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.
Définir un répertoire de travail
Le répertoire de travail est l'endroit où le conteneur exécute ses commandes et ses arguments. Vous pouvez spécifier un répertoire de travail personnalisé pour le processus de conteneur lors du déploiement d'un service nouveau ou existant. Si aucune valeur n'est spécifiée, le répertoire de travail par défaut de l'image de conteneur est utilisé. Pour rétablir la valeur par défaut de ce champ, transmettez une chaîne vide ou supprimez le champ.
Exemple :
gcloud
Pour modifier le répertoire de travail d'un job existant :
gcloud run jobs update JOB_NAME --workdir WORKING_DIR
Remplacez les éléments suivants :
- WORKING_DIR : répertoire de travail du conteneur. Si aucune valeur n'est spécifiée, la valeur par défaut de l'image de conteneur est utilisée. Pour rétablir la valeur par défaut de ce champ, transmettez une chaîne vide
"".
Pour spécifier le répertoire de travail lors de la création d'un job :
gcloud run jobs create JOB_NAME --image IMAGE_URL --workdir WORKING_DIR
Remplacez les éléments suivants :
- IMAGE_URL : référence à l'
image de conteneur, par
exemple
us-docker.pkg.dev/cloudrun/container/job:latest. - WORKING_DIR : répertoire de travail du conteneur.
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 l'attribut
workingDir::apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - image: IMAGE_URL workingDir: WORKING_DIR
Remplacez les éléments suivants :
- WORKING_DIR : (facultatif) répertoire de travail du conteneur. Si
aucune valeur n'est spécifiée, la valeur par défaut de l'environnement d'exécution du conteneur est utilisée. Elle
peut être configurée dans l'image de conteneur (IMAGE_URL : référence à l'image de conteneur, par
exemple,
us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL suit le formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG).
- WORKING_DIR : (facultatif) répertoire de travail du conteneur. Si
aucune valeur n'est spécifiée, la valeur par défaut de l'environnement d'exécution du conteneur est utilisée. Elle
peut être configurée dans l'image de conteneur (IMAGE_URL : référence à l'image de conteneur, par
exemple,
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 à unegoogle_cloud_run_v2_job
ressource 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"
working_dir = WORKING_DIR
}
}
}
}
Remplacez :
- JOB_NAME par le nom de votre tâche Cloud Run
- REGION par la Google Cloud région. Exemple :
europe-west1. - WORKING_DIR : (facultatif) répertoire de travail du conteneur. Si aucune valeur n'est spécifiée, la valeur par défaut de l'environnement d'exécution du conteneur est utilisée. Elle peut être configurée dans l'image de conteneur.
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 listez 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 Google Cloud console, Google Cloud CLI ou YAML pour spécifier l' ordre de démarrage :
Console
Dans la Google Cloud console, accédez à la page Jobs de Cloud Run :
- Pour un job existant, cliquez sur le job dans la liste, puis 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 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 Conteneurs, mise en réseau, sécurité, procédez comme suit :
- Configurez le conteneur de job principal.
- Pour ajouter chaque conteneur 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 les autres configurations requises, puis cliquez sur Créer pour un nouveau job ou sur Mettre à jour pour un job existant. Patientez jusqu'à la fin du déploiement.
gcloud
-
Dans la Google Cloud console, activez Cloud Shell.
En bas de la Google Cloud console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
Pour déployer plusieurs conteneurs dans un job avec un ordre de démarrage spécifié, exécutez la commande :
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 dans lequel vous effectuez le déploiement. Vous pouvez omettre ce paramètre, mais vous serez invité à saisir le nom du job si vous l'omettez.
- CONTAINER_1_NAME par le nom du conteneur de job principal.
- JOB_IMAGE par une référence à l'image de conteneur de 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.
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
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
La commande
gcloud run jobs replaceutilise par défaut le fichierjob.yamls'il est présent.
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 Google Cloud console, 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.