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.
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
Vous pouvez configurer le point d'entrée de la commande et les arguments pour les jobs à l'aide de la consoleGoogle Cloud , de la gcloud CLI, de YAML ou de Terraform :
Console
Dans la console Google Cloud , accédez à la page Cloud Run :
Sélectionnez Jobs dans le menu de navigation Cloud Run :
Si vous créez un job, 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.
Spécifiez la commande que le conteneur doit exécuter, s'il ne s'agit pas de la commande définie dans votre conteneur.
Facultatif : Spécifiez les arguments de la commande de point d'entrée.
Cliquez sur Créer ou Mettre à jour.
gcloud
Pour définir la commande de démarrage et les arguments d'un nouveau job, exécutez la commande suivante :
gcloud run jobs create JOB --image IMAGE_URL --command COMMAND --args ARG1,ARG_N
Remplacez les éléments suivants :
JOBpar le nom de votre job Cloud RunIMAGE_URL: référence à l'image de conteneur (par exemple,us-docker.pkg.dev/cloudrun/container/job:latest).COMMAND: commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut.ARG1: 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.
Pour mettre à jour les commandes et les arguments d'un job existant, exécutez la commande suivante :
gcloud run jobs update JOB --command COMMAND --args ARG1,ARG_N
Pour effacer les commandes entrypoint et les arguments, exécutez la commande suivante :
gcloud run jobs update JOB --command "" --args ""
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 --format export > job.yaml
Modifiez les attributs
args:etcommand:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE_URL args: - ARG1' - ARG_N command: - COMMAND
Remplacez les éléments suivants :
JOBpar le nom de votre job Cloud RunIMAGE_URL: référence à l'image de conteneur (par exemple,us-docker.pkg.dev/cloudrun/container/job:latest).ARG1: 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.COMMAND: commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut.
Mettez à jour la configuration de job existante :
gcloud run jobs replace job.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez 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"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
command = ["COMMAND"]
args = ["ARG1", "ARG_N"]
}
}
}
}
Remplacez les éléments suivants :
JOBpar le nom de votre job Cloud RunREGION: région Google Cloud . Exemple :europe-west1.COMMAND: commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut.ARG1: 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.
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.
Vous pouvez définir un répertoire de travail à l'aide de gcloud CLI, de YAML ou de Terraform :
gcloud
Pour mettre à jour le répertoire de travail d'un job existant, exécutez la commande suivante :
gcloud run jobs update JOB --workdir WORKING_DIR
Remplacez les éléments suivants :
JOBpar le nom de votre job Cloud RunWORKING_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éinitialiser ce champ sur sa valeur par défaut, transmettez une chaîne vide"".
Pour spécifier le répertoire de travail lors de la création d'un job, exécutez la commande suivante :
gcloud run jobs create JOB --image IMAGE_URL --workdir WORKING_DIR
Remplacez les éléments suivants :
JOBpar le nom de votre job Cloud RunIMAGE_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. Si aucune valeur n'est spécifiée, la valeur par défaut de l'image du conteneur est utilisée. Pour réinitialiser ce champ sur sa valeur par défaut, transmettez une chaîne vide"".
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 --format export > job.yaml
Mettez à jour l'attribut
workingDir::apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE_URL workingDir: WORKING_DIR
Remplacez les éléments suivants :
JOBpar le nom de votre job Cloud RunIMAGE_URL: référence à l'image de conteneur (par exemple,us-docker.pkg.dev/cloudrun/container/job:latest).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 sera utilisée. Elle peut être configurée dans l'image de conteneur.
Mettez à jour la configuration de job existante :
gcloud run jobs replace job.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez 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"
location = "REGION"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
working_dir = WORKING_DIR
}
}
}
}
Remplacez les éléments suivants :
JOBpar le nom de votre job Cloud RunREGION: région Google Cloud . 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 sera 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 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 , gcloud CLI ou YAML pour spécifier l'ordre de démarrage :
Console
Dans la console Google Cloud , accédez à la page Jobs de Cloud Run :
Si vous créez un job, procédez comme suit :
- Cliquez sur Déployer le conteneur.
- Spécifiez le nom du job, l'URL du conteneur de job, la région et le nombre de tâches.
- Cliquez sur Conteneurs, mise en réseau, sécurité pour développer la section.
- 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.
Si vous configurez un job existant, procédez comme suit :
- Sélectionnez le job que vous souhaitez modifier.
- Cliquez sur Afficher et modifier la configuration du job.
- Cliquez sur Conteneurs, connexions, sécurité pour développer la section.
- 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
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 les éléments suivants :
JOBpar le nom de votre job Cloud RunCONTAINER_1_NAME: nom du conteneur de job principal.JOB_IMAGE: référence à l'image de conteneur du job principal, par exempleus-docker.pkg.dev/cloudrun/container/job:latest.CONTAINER_2_NAME: nom du conteneur side-car, par exemplesidecar.SIDECAR_IMAGE: 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 --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"]}'Remplacez les éléments suivants :
CONTAINER1: 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: nom du conteneur qui doit démarrer avant CONTAINER1.CONTAINER3: 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 job Cloud Run, utilisez la console Google Cloud ou la Google Cloud CLI :
Console
Dans la console Google Cloud , accédez à la page des jobs Cloud Run :
Cliquez sur le job 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
Recherchez le paramètre de conteneur dans la configuration renvoyée.