Cette page explique comment différer l'exécution d'un job. L'exécution différée vous permet de reporter des tâches non urgentes pendant une durée maximale de 12 heures. Lorsque vous utilisez cette fonctionnalité, votre job est provisionné pendant une période de faible utilisation, en échange d'un prix inférieur. Pour en savoir plus, consultez la page Tarifs.
Plus spécifiquement :
- Le provisionnement d'une exécution de job différée peut durer jusqu'à 12 heures, et la durée totale d'exécution de toutes les tâches d'une exécution de job différée est de 12 heures. Combinées, ces exigences garantissent qu'une exécution différée sera terminée dans les 24 heures.
- Compte tenu de ce qui précède, la limite de délai d'attente des tâches pour un job différé est de 12 heures.
- Lorsque l'exécution d'un job différé a atteint la limite de durée maximale, elle est annulée par le système.
Jobs réguliers et jobs différés
Chaque job Cloud Run est créé en tant que job régulier ou différé.
Quel que soit le mode de création du job, vous pouvez l'exécuter comme l'autre type. Pour en savoir plus, consultez les pages suivantes :
Tarifs
Pour en savoir plus sur les tarifs des jobs Cloud Run différés, consultez Tarifs de Cloud Run.
Rôles requis
Pour obtenir les autorisations nécessaires à la création de jobs Cloud Run, demandez à votre administrateur de vous attribuer 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 conteneurs du job
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.
Créer un job différé
Par défaut, lorsque vous créez et exécutez un job, l'exécution démarre dès que possible.
Avec la fonctionnalité de jobs différés, vous pouvez créer un job dont l'exécution est différée dès sa création :
Console
Dans la Google Cloud console, accédez à la page Cloud Run :
Sélectionnez Jobs dans le menu de navigation Cloud Run, puis cliquez sur Déployer un conteneur pour afficher le formulaire Créer un job.
Remplissez les champs du formulaire Créer un job, comme décrit dans Créer des jobs.
Sélectionnez Différer l'exécution pour reporter l'exécution jusqu'à 12 heures.
gcloud
Créez le job à l'aide de l'option --delay-execution :
gcloud beta run jobs create JOB_NAME \ --image IMAGE_URL \ --delay-execution \ --region=REGION
Si vous avez créé votre job en tant que job différé, vous n'avez pas besoin d'inclure l'option --delay-execution pour l'exécuter :
gcloud beta run jobs execute JOB_NAME \ --region=REGION
YAML
Mettez à jour votre job.yaml avec l'attribut delayExecution défini sur true :
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "true"
Exécuter un job régulier en tant que job différé
Pour exécuter un job régulier en tant que job différé :
Console
Dans la Google Cloud console, accédez à la page Cloud Run :
Cliquez sur le nom du job que vous souhaitez modifier.
Cliquez sur Afficher et modifier la configuration du job.
Sélectionnez Exécution différée.
Cliquez sur Mettre à jour.
gcloud
Exécutez la commande suivante :
gcloud beta run jobs execute JOB_NAME \ --async \ --delay-execution \ --region=REGION
YAML
Mettez à jour votre job.yaml avec l'attribut delayExecution défini sur true :
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "true"
Exécuter un job différé en tant que job régulier
Lorsque vous désactivez l'exécution différée, le job est mis à jour pour devenir un job régulier. Cela signifie que la prochaine fois que vous exécuterez ce job, il s'exécutera dès que possible.
Pour désactiver l'exécution différée :
Console
Dans la Google Cloud console, accédez à la page Cloud Run :
Cliquez sur le nom du job que vous souhaitez modifier.
Cliquez sur Afficher et modifier la configuration du job.
Désélectionnez Exécution différée.
Cliquez sur Mettre à jour.
gcloud
Utilisez l'option --no-delay-execution. Vous pouvez également utiliser cette option avec les commandes update. Si vous utilisez cette option pour un job régulier, elle met à jour le job pour désactiver l'exécution différée.
gcloud beta run jobs update JOB_NAME \ --image IMAGE_URL \ --no-delay-execution \ --region=REGION
YAML
Mettez à jour votre job.yaml avec l'attribut delayExecution défini sur false :
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "false"
Exécuter un job différé lors de sa création ou de sa mise à jour
Lorsque vous créez un job différé avec l'option --execute-now, l'exécution est déclenchée
lors de la création et le job s'exécute à un moment donné au cours des 12 heures suivantes.
Pour exécuter un job différé lors de sa création ou de sa mise à jour :
Console
Dans la Google Cloud console, accédez à la page Jobs de Cloud Run :
Si vous disposez d'un job différé existant, cliquez dessus pour afficher la page des détails du job, puis sélectionnez Afficher et modifier la configuration du job. Si vous créez un job différé, sélectionnez Déployer un conteneur.
Accédez au bas de la page et cochez la case Exécuter le job immédiatement avant de créer ou de mettre à jour le job.
gcloud
Spécifiez l'option --execute-now
lorsque vous créez ou mettez à jour un job différé :
Créer un job :
gcloud run jobs create JOB_NAME \ --image IMAGE_URL \ --delay-execution \ --execute-now \ --region=REGION
Mettre à jour un job :
gcloud run jobs update JOB_NAME \ --execute-now \ --region=REGION