Limiter l'exécution d'une VM


Ce document explique comment limiter la durée d'exécution d'instances de machines virtuelles (VM) nouvelles ou existantes, et comment surveiller la durée d'exécution de ces VM. Pour les groupes d'instances gérés (MIG, Managed Instance Group), consultez plutôt la section Limiter la durée d'exécution d'un MIG.

Lorsque vous limitez la durée d'exécution d'un VM, vous pouvez programmer son arrêt automatiquement (arrêté ou supprimé) lorsqu'il atteint une limite de temps spécifique (durée ou heure). Utilisez des limites de temps pour optimiser les charges de travail temporaires. En limitant automatiquement le temps d'exécution des VM, vous pouvez réduire les coûts et libérer des quotas.

Pour savoir comment arrêter immédiatement une VM, consultez la page Arrêter ou redémarrer une VM. Pour savoir comment supprimer immédiatement une VM, consultez la page Supprimer une VM.

Pour en savoir plus sur les autres options permettant de limiter automatiquement la durée d'exécution des VM, consultez les pages suivantes:

  • Planifier le démarrage et l'arrêt d'une VM : les programmations d'instances vous permettent de démarrer et d'arrêter automatiquement les VM. Vous pouvez associer une programmation d'instances à plusieurs VM et la répéter automatiquement pour les charges de travail récurrentes.

  • Par lot: les tâches par lot créent et suppriment automatiquement des VM pour les charges de travail finies. Vous pouvez spécifier ou omettre une limite pour la durée d'exécution.

Avant de commencer

  • Pour obtenir les autorisations nécessaires pour limiter la durée d'exécution d'une VM, demandez à votre administrateur de vous accorder le rôleAdministrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) IAM sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

    Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Restrictions

La limitation de la durée d'exécution d'une VM présente les restrictions suivantes:

  • L'action d'arrêt automatique doit être soit d'arrêt, soit de suppression. Vous ne pouvez pas configurer la suspension automatique d'une VM lorsque le délai est atteint.

  • La durée minimale est de 30 secondes et la durée maximale de 120 jours.

  • L'arrêt automatique peut nécessiter jusqu'à 30 secondes de plus que la durée ou l'heure que vous spécifiez pour déclencher l'arrêt ou la suppression effectifs de la VM.

  • Vous ne pouvez pas utiliser les limites de temps avec les anciennes VM préemptives. Utilisez plutôt des limites de temps avec les VM Spot.

  • Les données de disque SSD local d'une VM ne peuvent pas être conservées lorsque la VM est automatiquement arrêtée en raison d'une limite de temps. Pour en savoir plus, consultez la page Arrêter une VM avec un disque SSD local.

Limiter l'exécution d'une nouvelle VM

Les sections suivantes expliquent comment configurer une limite de temps lors de la création d'une VM. Vous pouvez spécifier le délai, correspondant au moment où vous souhaitez qu'une VM s'arrête automatiquement, sous la forme d'une durée (maxRunDuration) ou d'une heure (terminationTime).

Lorsque vous déterminez le type de limite de temps pour une VM, tenez compte du fait que celle-ci peut être interrompue, par exemple par une requête utilisateur ou par un événement hôte. Le comportement d'une limite de temps varie en fonction du type d'interruption et du type de délai:

  • L'horodatage de fin (terminationTimestamp) d'une VM est un champ en lecture seule qui représente l'heure prévue pour l'arrêt automatique. Il est automatiquement défini par Compute Engine chaque fois qu'une VM a un délai et passe à l'état RUNNING.

  • L'horodatage de fin est automatiquement effacé chaque fois qu'une VM est arrêtée ou suspendue. Toutefois, l'horodatage de fin ne change pas lorsque vous réinitialisez une VM ou redémarrez une VM.

  • L'horodatage de fin est automatiquement redéfini à chaque redémarrage ou réactivation de la VM en fonction du type de délai que vous avez défini:

    • Si vous définissez une durée pour la VM, l'horodatage de fin est recalculé en ajoutant cette durée à la dernière heure de début de la VM.
    • Si vous définissez une heure pour la VM, l'horodatage de fin est défini sur cette heure. Cependant, le moment doit se situer dans le futur. Sinon, toute requête de création ou de réexécution de la VM échouera jusqu'à ce que vous mettiez à jour ou supprimiez l'heure.

Définir une durée

Une durée représente la durée totale d'exécution que vous souhaitez pour une VM. Pour créer une VM qui est arrêtée automatiquement après qu'elle a été exécutée pendant une durée spécifique, utilisez la console Google Cloud, Google Cloud CLI ou l'API Compute Engine.

Console

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à Créer une instance

  2. Dans la section Règles de disponibilité, développez Paramètres avancés du modèle de provisionnement de VM.

  3. Cochez la case Définir un délai pour la VM. Le champ Type de délai s'affiche.

  4. Dans le champ Type de délai, sélectionnez Par heure (par défaut) pour spécifier le délai sous la forme d'une durée. Dans le champ suivant, saisissez la durée en heures.

  5. Dans la liste À l'arrêt de la VM, sélectionnez ce qui doit se passer lorsque l'exécution de la VM atteint le délai spécifié :

    • Pour arrêter automatiquement la VM, sélectionnez Arrêter (valeur par défaut).
    • Pour supprimer la VM, sélectionnez Supprimer.
  6. Facultatif : spécifiez d'autres options de VM. Pour en savoir plus, consultez la page Créer et démarrer une instance de VM.

  7. Pour créer et démarrer la VM, cliquez sur Créer.

gcloud

Pour créer une VM à partir de la CLI gcloud, utilisez la commande gcloud beta compute instances create.

  • Pour créer une VM qui doit s'arrêter automatiquement après une durée spécifique, vous devez inclure l'option --max-run-duration.
  • Pour spécifier l'action d'arrêt, incluez l'option --instance-termination-action.
  • Configurez l'option --discard-local-ssds-at-termination-timestamp :
    • Si la VM dispose de disques SSD locaux et définit l'action d'arrêt (TERMINATION_ACTION) sur s'arrêter (STOP), vous devez inclure l'option --discard-local-ssds-at-termination-timestamp=true.
    • Sinon, omettez l'option --discard-local-ssds-at-termination-timestamp.
gcloud beta compute instances create VM_NAME \
    --max-run-duration=DURATION \
    --instance-termination-action=TERMINATION_ACTION

Remplacez les éléments suivants :

  • VM_NAME : nom de la nouvelle VM.
  • DURATION : durée pendant laquelle vous souhaitez que cette VM s'exécute avant d'être automatiquement arrêtée. Formatez la durée en nombre de jours, d'heures, de minutes et de secondes, suivis respectivement de d, h, m et s. Par exemple, spécifiez 30m pour définir une durée de 30 minutes ou 1d2h3m4s pour une durée d'un jour, deux heures, trois minutes et quatre secondes. La durée minimale est de 30 secondes (30s) et la durée maximale est de 120 jours (120d).
  • TERMINATION_ACTION : action d'arrêt pour cette VM, qui peut être soit arrêtée (STOP), soit supprimée (DELETE). Le caractère obligatoire de ce champ, ou bien l'adoption d'une valeur par défaut, dépend du modèle de provisionnement de la VM :
    • S'il s'agit d'une VM Spot (si la VM utilise l'option --provisioning-model=SPOT), l'option --instance-termination-action=TERMINATION_ACTION est facultative. Si cette option est ignorée, l'action d'arrêt par défaut est l'arrêt.
    • Sinon (par défaut), l'option --instance-termination-action=TERMINATION_ACTION est obligatoire.

Pour en savoir plus sur les options que vous pouvez spécifier lors de la création d'une VM, consultez la page Créer et démarrer une instance de VM.

REST

Pour créer une VM à partir de l'API Compute Engine, utilisez la méthode instances.insert bêta. Vous devez spécifier un nom, un type de machine et un disque de démarrage pour la VM.

Pour créer une VM qui s'arrête automatiquement après une durée spécifique, vous devez inclure le champ maxRunDuration. Pour spécifier l'action d'arrêt, incluez le champ instanceTerminationAction, qui est facultatif pour les VM Spot.

POST http://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ]
  "scheduling":
  {
    "maxRunDuration":
    {
      "seconds": DURATION
    },
    "instanceTerminationAction": "TERMINATION_ACTION"
  },
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer la VM.
  • ZONE : zone dans laquelle créer la VM. La zone doit également accepter le type de machine à utiliser pour la nouvelle VM.
  • MACHINE_TYPE : type de machine prédéfini ou personnalisé pour la nouvelle VM.
  • VM_NAME : nom de la nouvelle VM.
  • IMAGE_PROJECT : projet contenant l'image. Par exemple, si vous spécifiez family/debian-10 comme image, spécifiez debian-cloud comme projet d'image.
  • IMAGE : image de la nouvelle VM. Vous pouvez spécifier une version spécifique d'une image publique ou une famille d'images. Par exemple, si vous spécifiez family/debian-10 comme image et debian-cloud comme projet d'image, Compute Engine crée une VM à partir de la dernière version de l'image d'OS dans la famille d'images Debian 10.
  • DURATION : durée en secondes pendant laquelle vous souhaitez que cette VM s'exécute avant d'être automatiquement arrêtée. La durée minimale est de 30 secondes (30s) et la durée maximale est de 120 jours (120d).
  • TERMINATION_ACTION : action d'arrêt pour cette VM, qui peut être soit arrêtée (STOP), soit supprimée (DELETE). Le caractère obligatoire de ce champ, ou bien l'adoption d'une valeur par défaut, dépend du modèle de provisionnement de la VM :
    • S'il s'agit d'une VM Spot (si la VM utilise le champ "provisioningModel": "SPOT"), le champ "instanceTerminationAction": "TERMINATION_ACTION" est facultatif. Si ce champ est ignoré, l'action d'arrêt par défaut est l'arrêt.
    • Sinon (par défaut), le champ "instanceTerminationAction": "TERMINATION_ACTION" est obligatoire.

Pour en savoir plus sur les options que vous pouvez spécifier lors de la création d'une VM, consultez la page Créer et démarrer une instance de VM.

Définir une heure

Une heure représente la date, l'heure et le fuseau horaire auxquels vous souhaitez qu'une VM soit arrêtée. Pour créer une VM qui est arrêtée automatiquement à une heure spécifique, utilisez la console Google Cloud, Google Cloud CLI ou l'API Compute Engine.

Console

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à Créer une instance

  2. Dans la section Règles de disponibilité, développez Paramètres avancés du modèle de provisionnement de VM.

  3. Cochez la case Définir un délai pour la VM. Le champ Type de délai s'affiche.

  4. Dans le champ Type de délai, sélectionnez Par date pour spécifier le délai sous la forme d'un code temporel (date et heure). Dans le champ suivant, cliquez sur Sélectionner une date et une heure, puis sélectionnez la date, l'heure et le fuseau horaire pour le délai.

  5. Dans la liste À l'arrêt de la VM, sélectionnez ce qui doit se passer lorsque l'exécution de la VM atteint le délai spécifié :

    • Pour arrêter automatiquement la VM, sélectionnez Arrêter (valeur par défaut).
    • Pour supprimer la VM, sélectionnez Supprimer.
  6. Facultatif : spécifiez d'autres options de VM. Pour en savoir plus, consultez la page Créer et démarrer une instance de VM.

  7. Pour créer et démarrer la VM, cliquez sur Créer.

gcloud

Pour créer une VM à partir de la CLI gcloud, utilisez la commande gcloud beta compute instances create.

  • Pour créer une VM qui est arrêtée automatiquement à une heure spécifique, vous devez inclure l'option --termination-time.
  • Pour spécifier l'action d'arrêt, incluez l'option --instance-termination-action, qui est facultative pour les VM Spot.
  • Configurez l'option --discard-local-ssds-at-termination-timestamp :
    • Si la VM dispose de disques SSD locaux et définit l'action d'arrêt (TERMINATION_ACTION) sur s'arrêter (STOP), vous devez inclure l'option --discard-local-ssds-at-termination-timestamp=true.
    • Sinon, omettez l'option --discard-local-ssds-at-termination-timestamp.
gcloud beta compute instances create VM_NAME \
    --termination-time=TIME \
    --instance-termination-action=TERMINATION_ACTION

Remplacez les éléments suivants :

  • VM_NAME : nom de la nouvelle VM.
  • TIME : heure à laquelle cette VM doit être arrêtée automatiquement. L'heure que vous spécifiez doit être une heure à venir, comprise entre 30 secondes et 120 jours par rapport à l'heure active. Formatez l'heure sous la forme d'un code temporel RFC 3339 :

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Remplacez les éléments suivants :

    • YYYY-MM-DD : date respectant la syntaxe année (valeur à quatre chiffres), mois à deux chiffres et jour à deux chiffres du mois, séparés par des traits d'union.
    • HH:MM:SS : heure respectant la syntaxe heures au format 2 chiffres sur 24 heures, minutes à deux chiffres et secondes à deux chiffres, séparés par des signes deux-points.
    • OFFSET : fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), soit huit heures avant l'heure UTC, spécifiez -08:00. Pour utiliser un décalage (UTC+0), spécifiez Z.
  • TERMINATION_ACTION : action d'arrêt pour cette VM, qui peut être soit arrêtée (STOP), soit supprimée (DELETE). Le caractère obligatoire de ce champ, ou bien l'adoption d'une valeur par défaut, dépend du modèle de provisionnement de la VM :

    • S'il s'agit d'une VM Spot (si la VM utilise l'option --provisioning-model=SPOT), l'option --instance-termination-action=TERMINATION_ACTION est facultative. Si cette option est ignorée, l'action d'arrêt par défaut est l'arrêt.
    • Sinon (par défaut), l'option --instance-termination-action=TERMINATION_ACTION est obligatoire.

Pour en savoir plus sur les options que vous pouvez spécifier lors de la création d'une VM, consultez la page Créer et démarrer une instance de VM.

REST

Pour créer une VM à partir de l'API Compute Engine, utilisez la méthode instances.insert bêta. Vous devez spécifier un nom, un type de machine et un disque de démarrage pour la VM.

Pour créer une VM qui est arrêtée automatiquement à une heure spécifique, vous devez inclure le champ terminationTime. Pour spécifier l'action d'arrêt, incluez le champ instanceTerminationAction, qui est facultatif pour les VM Spot.

POST http://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ]
  "scheduling":
  {
    "terminationTime": "TIME",
    "instanceTerminationAction": "TERMINATION_ACTION"
  },
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer la VM.
  • ZONE : zone dans laquelle créer la VM. La zone doit également accepter le type de machine à utiliser pour la nouvelle VM.
  • MACHINE_TYPE : type de machine prédéfini ou personnalisé pour la nouvelle VM.
  • VM_NAME : nom de la nouvelle VM.
  • IMAGE_PROJECT : projet contenant l'image. Par exemple, si vous spécifiez family/debian-10 comme image, spécifiez debian-cloud comme projet d'image.
  • IMAGE : image de la nouvelle VM. Vous pouvez spécifier une version spécifique d'une image publique ou une famille d'images. Par exemple, si vous spécifiez family/debian-10 comme image et debian-cloud comme projet d'image, Compute Engine crée une VM à partir de la dernière version de l'image d'OS dans la famille d'images Debian 10.
  • TIME : heure à laquelle cette VM doit être arrêtée automatiquement. L'heure que vous spécifiez doit être une heure à venir, comprise entre 30 secondes et 120 jours par rapport à l'heure active. Formatez l'heure sous la forme d'un code temporel RFC 3339 :

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    Remplacez les éléments suivants :

    • YYYY-MM-DD : date respectant la syntaxe année (valeur à quatre chiffres), mois à deux chiffres et jour à deux chiffres du mois, séparés par des traits d'union.
    • HH:MM:SS : heure respectant la syntaxe heures au format 2 chiffres sur 24 heures, minutes à deux chiffres et secondes à deux chiffres, séparés par des signes deux-points.
    • OFFSET : fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), soit huit heures avant l'heure UTC, spécifiez -08:00. Pour utiliser un décalage (UTC+0), spécifiez Z.
  • TERMINATION_ACTION : action d'arrêt pour cette VM, qui peut être soit arrêtée (STOP), soit supprimée (DELETE). Le caractère obligatoire de ce champ, ou bien l'adoption d'une valeur par défaut, dépend du modèle de provisionnement de la VM :

    • S'il s'agit d'une VM Spot (si la VM utilise le champ "provisioningModel": "SPOT"), le champ "instanceTerminationAction": "TERMINATION_ACTION" est facultatif. Si ce champ est ignoré, l'action d'arrêt par défaut est l'arrêt.
    • Sinon (par défaut), le champ "instanceTerminationAction": "TERMINATION_ACTION" est obligatoire.

Pour en savoir plus sur les options que vous pouvez spécifier lors de la création d'une VM, consultez la page Créer et démarrer une instance de VM.

Limiter l'exécution d'une VM existante

Vous pouvez limiter l'exécution d'une VM existante en mettant à jour sa programmation. Si vous n'avez pas déjà étudié la configuration des paramètres des limites de temps, consultez d'abord les sections précédentes sur la limitation de la durée d'exécution d'une nouvelle VM.

Vous pouvez utiliser la console Google Cloud, Google Cloud CLI ou l'API Compute Engine pour mettre à jour les propriétés liées à la planification de la VM, comme décrit dans cette section. Cette méthode nécessite d'arrêter votre VM, puis de mettre à jour ses propriétés et de la redémarrer. Si vous souhaitez mettre à jour simultanément d'autres propriétés de VM, et arrêter et redémarrer automatiquement une VM, consultez la section Mettre à jour les propriétés d'une instance.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Dans la colonne Nom, cliquez sur le nom de la VM que vous souhaitez mettre à jour.

  3. Sur la page des détails de l'instance de VM, procédez comme suit :

    1. Si la VM est en cours d'exécution, cliquez sur Arrêter pour l'arrêter.
    2. Pour modifier la VM, cliquez sur Modifier.
    3. Sur la page Modifier l'instance, procédez comme suit :

      1. Dans la section Règles de disponibilité, cochez ou décochez la case Définir un délai pour la VM et modifiez tous les champs situés en dessous comme vous le souhaitez.

        Pour en savoir plus sur la configuration des propriétés des limites de temps, consultez la section Limiter la durée d'exécution d'une nouvelle VM.

      2. Pour enregistrer vos modifications, cliquez sur Enregistrer.

    4. Facultatif : si vous souhaitez commencer à exécuter la VM maintenant, cliquez sur Démarrer.

gcloud

Pour mettre à jour la limite de temps d'une VM à l'aide de gcloud CLI, procédez comme suit:

  1. Si la VM est en cours d'exécution, arrêtez-la à l'aide de la commande gcloud compute instances stop :

    gcloud compute instances stop VM_NAME
    

    Remplacez VM_NAME par le nom de la VM que vous souhaitez mettre à jour.

  2. Mettez à jour le délai de la VM à l'aide de la commande gcloud beta compute instances set-scheduling.

    gcloud beta compute instances set-scheduling VM_NAME \
        --max-run-duration=DURATION \
        --termination-time=TIME \
        --instance-termination-action=TERMINATION_ACTION \
        --discard-local-ssds-at-termination-timestamp=true
    

    Configurez les options suivantes:

    • Vous devez omettre l'option --max-run-duration ou --termination-time pour définir le délai respectivement sous la forme d'une heure ou d'une durée.
    • Incluez l'option --instance-termination-action pour définir l'action d'arrêt.
    • Si la VM dispose de disques SSD locaux et définit l'action d'arrêt (TERMINATION_ACTION) sur s'arrêter (STOP), vous devez inclure l'option --discard-local-ssds-at-termination-timestamp=true. Sinon, omettez l'option --discard-local-ssds-at-termination-timestamp=true.

    Remplacez ensuite les éléments suivants:

    • VM_NAME : nom de la VM que vous souhaitez mettre à jour.
    • DURATION : durée pendant laquelle vous souhaitez que cette VM s'exécute avant d'être automatiquement arrêtée. Formatez la durée en nombre de jours, d'heures, de minutes et de secondes, suivis respectivement de d, h, m et s. Par exemple, spécifiez 30m pour définir une durée de 30 minutes ou 1d2h3m4s pour une durée d'un jour, deux heures, trois minutes et quatre secondes. La durée minimale est de 30 secondes (30s) et la durée maximale est de 120 jours (120d).
    • TIME : heure à laquelle cette VM doit être arrêtée automatiquement. L'heure que vous spécifiez doit être une heure à venir, comprise entre 30 secondes et 120 jours par rapport à l'heure active. Formatez l'heure sous la forme d'un code temporel RFC 3339 :

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Remplacez les éléments suivants :

      • YYYY-MM-DD : date respectant la syntaxe année (valeur à quatre chiffres), mois à deux chiffres et jour à deux chiffres du mois, séparés par des traits d'union.
      • HH:MM:SS : heure respectant la syntaxe heures au format 2 chiffres sur 24 heures, minutes à deux chiffres et secondes à deux chiffres, séparés par des signes deux-points.
      • OFFSET : fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), soit huit heures avant l'heure UTC, spécifiez -08:00. Pour utiliser un décalage (UTC+0), spécifiez Z.
    • TERMINATION_ACTION : action d'arrêt pour cette VM, qui peut être soit arrêtée (STOP), soit supprimée (DELETE). Le caractère obligatoire de ce champ, ou bien l'adoption d'une valeur par défaut, dépend du modèle de provisionnement de la VM :

      • S'il s'agit d'une VM Spot (si la VM utilise l'option --provisioning-model=SPOT), l'option --instance-termination-action=TERMINATION_ACTION est facultative. Si cette option est ignorée, l'action d'arrêt par défaut est l'arrêt.
      • Sinon (par défaut), l'option --instance-termination-action=TERMINATION_ACTION est obligatoire.
  3. Si vous souhaitez lancer l'exécution de la VM, démarrez-la en exécutant la commande gcloud compute instances start :

    gcloud compute instances start VM_NAME
    

    Remplacez VM_NAME par le nom de la VM.

REST

Pour mettre à jour la limite de temps d'une VM à l'aide de l'API Compute Engine, procédez comme suit:

  1. Si la VM est en cours d'exécution, arrêtez-la à l'aide de la méthode instances.stop :

    POST http://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant la VM.
    • ZONE : zone contenant la VM.
    • VM_NAME : nom de la VM que vous souhaitez mettre à jour.
  2. Mettez à jour la propriété scheduling de la VM, y compris les champs concernant le délai de la VM, à l'aide de la méthode instances.setScheduling (bêta). Incluez le champ maxRunDuration ou terminationTime pour définir le délai respectivement sous la forme d'une durée ou d'une heure :

    • Pour spécifier une durée, utilisez la requête suivante :

      POST http://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "maxRunDuration":
        {
          "seconds": DURATION
        },
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      
    • Pour spécifier une heure, utilisez la requête suivante :

      POST http://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
      {
        "terminationTime": "TIME",
        "instanceTerminationAction": "TERMINATION_ACTION"
      }
      

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel créer la VM.
    • ZONE : zone dans laquelle créer la VM. La zone doit également accepter le type de machine à utiliser pour la nouvelle VM.
    • MACHINE_TYPE : type de machine prédéfini ou personnalisé pour la nouvelle VM.
    • VM_NAME : nom de la nouvelle VM.
    • IMAGE_PROJECT : projet contenant l'image. Par exemple, si vous spécifiez family/debian-10 comme image, spécifiez debian-cloud comme projet d'image.
    • IMAGE : image de la nouvelle VM. Vous pouvez spécifier une version spécifique d'une image publique ou une famille d'images. Par exemple, si vous spécifiez family/debian-10 comme image et debian-cloud comme projet d'image, Compute Engine crée une VM à partir de la dernière version de l'image d'OS dans la famille d'images Debian 10.
    • DURATION : durée en secondes pendant laquelle vous souhaitez que cette VM s'exécute avant d'être automatiquement arrêtée. La durée minimale est de 30 secondes (30s) et la durée maximale est de 120 jours (120d).
    • TIME : heure à laquelle cette VM doit être arrêtée automatiquement. L'heure que vous spécifiez doit être une heure à venir, comprise entre 30 secondes et 120 jours par rapport à l'heure active. Formatez l'heure sous la forme d'un code temporel RFC 3339 :

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Remplacez les éléments suivants :

      • YYYY-MM-DD : date respectant la syntaxe année (valeur à quatre chiffres), mois à deux chiffres et jour à deux chiffres du mois, séparés par des traits d'union.
      • HH:MM:SS : heure respectant la syntaxe heures au format 2 chiffres sur 24 heures, minutes à deux chiffres et secondes à deux chiffres, séparés par des signes deux-points.
      • OFFSET : fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), soit huit heures avant l'heure UTC, spécifiez -08:00. Pour utiliser un décalage (UTC+0), spécifiez Z.
    • TERMINATION_ACTION : action d'arrêt pour cette VM, qui peut être soit arrêtée (STOP), soit supprimée (DELETE). Le caractère obligatoire de ce champ, ou bien l'adoption d'une valeur par défaut, dépend du modèle de provisionnement de la VM :

      • S'il s'agit d'une VM Spot (si la VM utilise le champ "provisioningModel": "SPOT"), le champ "instanceTerminationAction": "TERMINATION_ACTION" est facultatif. Si ce champ est ignoré, l'action d'arrêt par défaut est l'arrêt.
      • Sinon (par défaut), le champ "instanceTerminationAction": "TERMINATION_ACTION" est obligatoire.
  3. Si vous souhaitez lancer l'exécution de la VM, démarrez-la à l'aide de la méthode instances.start :

    POST http://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet contenant la VM.
    • ZONE : zone contenant la VM.
    • VM_NAME : nom de la VM.

Surveiller l'exécution d'une VM

Vous pouvez surveiller la durée d'exécution d'une VM limitée à l'aide des options suivantes:

  • Pour voir quand une VM en cours d'exécution est programmée pour s'arrêter automatiquement, affichez l'horodatage de fin de la VM:

    1. Afficher les détails d'une VM
    2. Dans le résultat, affichez le champ de la VM pour l'horodatage de fin :
      • Si vous utilisez la console Google Cloud, consultez le champ Durée maximale.
      • Si vous utilisez Google Cloud CLI ou l'API Compute Engine, consultez le champ terminationTimestamp.
  • Pour vérifier si une VM a été arrêtée automatiquement, consultez ses opérations:

    1. Afficher les opérations de VM
    2. Dans le résultat, vous pouvez identifier les opérations de VM provoquées par une limite de temps en recherchant les types d'opérations suivants:

      • compute.instances.deferredStop indique une action d'arrêt automatique de type arrêt.
      • compute.instances.deferredDelete indique une action d'arrêt automatique de suppression.

Étapes suivantes