Programmer le démarrage et l'arrêt d'une instance de VM


Les programmations d'instances vous permettent de démarrer et d'arrêter automatiquement des instances de machine virtuelle (VM). L'utilisation de programmations d'instances pour automatiser le déploiement de vos instances de VM peut vous aider à optimiser les coûts et à gérer les instances de VM plus efficacement. Vous pouvez utiliser des programmations d'instances pour les charges de travail récurrentes et ponctuelles. Par exemple, utilisez des programmations d'instances pour n'exécuter des instances de VM que pendant les heures de travail ou pour fournir de la capacité pour un événement ponctuel.

Pour utiliser des programmations d'instances, créez une règle de ressources qui détaille le comportement de démarrage et d'arrêt, puis associez la règle à une ou plusieurs instances de VM.

Avant de commencer

  • 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

Rôles requis

Pour utiliser des programmations d'instances, vous devez attribuer les rôles IAM (Identity and Access Management) requis aux comptes principaux suivants :

  • L'agent de service Compute Engine de votre projet. Cela est nécessaire pour que la programmation d'instances s'exécute sur une VM.

    Si vous révoquez ces autorisations après avoir créé des programmations d'instances, vos programmations peuvent cesser de fonctionner sans préavis. Pour vérifier si les programmations de vos instances s'exécutent correctement, vous devez régulièrement consulter les journaux d'audit.

  • Le compte utilisateur ou le compte de service qui crée, gère ou utilise la programmation d'instances.

Rôles requis pour l'agent de service Compute Engine

Pour vous assurer que l'agent de service Compute Engine dispose des autorisations nécessaires pour exécuter une programmation d'instances, demandez à votre administrateur d'accorder à l'agent de service Compute Engine le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient les autorisations requises pour exécuter une programmation d'instances. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour exécuter la programmation d'instances :

  • compute.instances.start
  • compute.instances.stop

Votre administrateur peut également attribuer ces autorisations à l'agent de service Compute Engine avec des rôles personnalisés ou d'autres rôles prédéfinis.

Rôles requis pour l'utilisateur ou le compte de service

Pour garantir que vous ou votre compte de service disposez des autorisations nécessaires pour créer et gérer des programmations d'instances, demandez à votre administrateur de vous accorder (ou à votre compte de service) le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur votre projet ou votre organisation. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient les autorisations requises pour créer et gérer des programmations d'instances. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour créer et gérer des programmations d'instances :

  • Créez une programmation d'instances : compute.resourcePolicies.create
  • Listez une programmation d'instances : compute.resourcePolicies.list
  • Décrivez une programmation d'instances : compute.resourcePolicies.get
  • Supprimez une programmation d'instances : compute.resourcePolicies.delete
  • Associez une programmation d'instances à une nouvelle VM :
    • compute.instances.create
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • Associez une programmation d'instances à une VM existante :
    • compute.resourcePolicies.use
    • compute.instances.addResourcePolicies
  • Supprimez une programmation d'instances d'une VM :
    • compute.resourcePolicies.use
    • compute.instances.removeResourcePolicies

Votre administrateur peut également vous accorder, à vous ou à votre compte de service, ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Limites

  • Vous ne pouvez associer une programmation d'instances qu'aux instances de VM situées dans la même région que celle de l'instance.
  • Chaque instance de VM ne peut suivre qu'une seule programmation d'instances, mais vous pouvez associer chaque programmation à un maximum de 1 000 instances de VM.
  • Les programmations d'instances ne fournissent pas de garanties de capacité. Par conséquent, si les ressources requises pour une instance de VM programmée ne sont pas disponibles à l'heure prévue, il se peut que votre instance de VM ne démarre pas au moment prévu. Bien que vous puissiez réserver des instances de VM avant de les démarrer pour fournir des garanties de capacité, les réservations ne peuvent pas être planifiées automatiquement.
  • Les programmations d'instances ne démarrent et arrêtent les instances de VM qu'aux moments spécifiés, mais vous pouvez démarrer et arrêter manuellement des instances de VM à tout moment. Par exemple, supposons que vous avez défini une programmation qui commence tous les jours à 8h et s'arrête tous les jours à 17h. Si vous associez cette programmation à une instance de VM arrêtée à 16h, cette instance de VM ne démarre pas avant 8h le lendemain, sauf si vous démarrez manuellement l'instance de VM avant cette date.
  • Pour démarrer une opération de démarrage ou d'arrêt, les instances de VM planifiées peuvent prendre jusqu'à 15 minutes après l'heure prévue. Si vous souhaitez que les instances de VM démarrent ou s'arrêtent à une heure spécifique, programmez l'opération 15 minutes avant l'avance et programmez chaque opération au moins 15 minutes l'une après l'autre.
  • Le programmeur peut échouer s'il existe un intervalle de moins de 15 minutes entre les opérations de démarrage et d'arrêt. En effet, l'opération d'arrêt peut se produire avant l'opération de démarrage, empêchant ainsi l'opération de démarrage de s'effectuer.
  • Chaque programmation d'instances vous permet d'avoir une opération de démarrage et jusqu'à une opération d'arrêt par heure.
  • Vous ne pouvez pas modifier les programmations d'instances. Pour modifier une programmation d'instances existante pour une ou plusieurs instances de VM, supprimez la programmation existante, puis créez et associez une programmation.

Gérer les programmations d'instances

Créez, répertoriez, décrivez et supprimez des programmations d'instances à l'aide de Google Cloud Console, de Google Cloud CLI ou de l'API Compute Engine.

Créer une programmation d'instances

Créez une programmation d'instances qui décrit à quel moment vos instances de VM doivent démarrer ou s'arrêter automatiquement. La programmation d'instances que vous créez est une stratégie de ressources que vous pouvez utiliser en l'associant ou en la supprimant des instances de VM.

Console

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

    Accéder à la page "Instances de VM"

  2. Cliquez sur l'onglet Planifications d'instances en haut de la page.

  3. Cliquez sur Créer une programmation. Le volet Créer une programmation s'ouvre.

  4. Saisissez un nom.

  5. Facultatif : saisissez une Description.

  6. Dans le menu déroulant Région, sélectionnez l'emplacement pour cette programmation d'instances.

  7. Définissez à quels moments la programmation d'instances démarre et arrête toutes les instances de VM associées. Si vous souhaitez que les instances de VM démarrent et s'arrêtent à une heure spécifique, planifiez l'opération 15 minutes plus tôt que nécessaire. Assurez-vous que l'intervalle entre chaque opération de démarrage et d'arrêt est d'au moins 15 minutes.

    Utilisez les champs Heure de début, Heure d'arrêt et Fréquence par défaut ou, si vous souhaitez configurer une programmation plus complexe, utilisez des expressions Cron.

    • Champs par défaut :

      1. Saisissez une Heure de début, une Heure d'arrêt ou les deux.
        • Dans le champ Heure de début, saisissez ou cliquez sur pour sélectionner l'heure de démarrage des instances de VM.
        • Dans le champ Heure d'arrêt, saisissez ou cliquez sur pour sélectionner l'heure d'arrêt des instances de VM.
      2. Dans le menu déroulant Fréquence en bas du volet, sélectionnez la fréquence à laquelle l'heure de début et l'heure d'arrêt sont répétés.
    • Expressions Cron :

      1. Pour activer les expressions Cron, cliquez sur le bouton Utiliser une expression CRON en haut du volet.
      2. Saisissez une expression CRON de démarrage, Arrêter l'expression CRON, ou les deux.
        • Dans le champ Start CRON expression (expression CRON de démarrage), saisissez une expression Cron qui décrit quand démarrer les instances de VM.
        • Dans le champ Stop CRON expression (expression CRON d'arrêt), saisissez une expression Cron qui décrit quand arrêter les instances de VM.
  8. Dans le menu déroulant Fuseau horaire, sélectionnez le fuseau horaire pour les champs Heure de début et Heure d'arrêt.

  9. Facultatif : Dans le champ Date de début, saisissez ou cliquez sur pour sélectionner la date et l'heure de début de la programmation de l'instance. En cas d'omission, la programmation est appliquée immédiatement.

  10. Facultatif : Dans le champ Date de fin, saisissez ou cliquez sur pour sélectionner la date et l'heure de fin de la programmation de l'instance. En cas d'omission, la programmation est appliquée indéfiniment.

  11. Cliquez sur Envoyer.

gcloud

Pour créer une programmation d'instances à l'aide de gcloud CLI, utilisez la commande gcloud compute resource-policies create instance-schedule :

gcloud compute resource-policies create instance-schedule SCHEDULE_NAME \
    [--description='SCHEDULE_DESCRIPTION'] \
    [--region=REGION] \
    [--vm-start-schedule='START-OPERATION_SCHEDULE'] \
    [--vm-stop-schedule='STOP-OPERATION_SCHEDULE'] \
    [--timezone=TIME_ZONE] \
    [--initiation-date=INITIATION_DATE] \
    [--end-date=END_DATE]

Remplacez les éléments suivants :

  • SCHEDULE_NAME : nom de la nouvelle programmation d'instances.
  • SCHEDULE_DESCRIPTION (facultatif) : description de la nouvelle programmation d'instances
  • REGION (facultatif) : région dans laquelle se trouvent les instances de VM que vous souhaitez associer à cette programmation d'instances.
  • Indiquez au moins l'un des éléments suivants :
    • START-OPERATION_SCHEDULE : programme qui décrit le démarrage des instances de VM associées, mises en forme en tant qu'expression Cron. Si vous souhaitez que les instances de VM démarrent à une heure spécifique, planifiez l'opération 15 minutes plus tôt que nécessaire. Pour en savoir plus, consultez la section Programmation d'une opération de démarrage.
    • STOP-OPERATION_SCHEDULE : programme qui décrit à quel moment les instances de VM associées sont arrêtées, mises en forme en tant qu'expression Cron. Si vous souhaitez que les instances de VM s'arrêtent à une heure spécifique, programmez l'opération 15 minutes plus tôt que nécessaire. Pour en savoir plus, consultez la section Programmation des opérations d'arrêt.
  • TIME_ZONE (facultatif) : fuseau horaire IANA basé sur l'emplacement pour cette programmation d'instances. En cas d'omission, la valeur par défaut UTC est utilisée. Pour plus d'informations, consultez la section Fuseau horaire.
  • INITIATION_DATE (facultatif) : première date d'exécution de la programmation d'instances, sous la forme d'un horodatage RFC 3339. En cas d'omission, la programmation est appliquée immédiatement. Pour en savoir plus, consultez la section sur la date d'initiation.
  • END_DATE (facultatif) : dernière date d'entrée en vigueur de la programmation d'instance, au format d'horodatage RFC 3339. En cas d'omission, la programmation est appliquée indéfiniment. Pour en savoir plus, consultez la section sur la date de fin.

REST

Pour créer une programmation d'instances à l'aide de l'API Compute Engine, envoyez une requête à l'aide de la méthode resourcePolicies.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies
{
  "name": "SCHEDULE_NAME",
  "description": "SCHEDULE_DESCRIPTION",
  "instanceSchedulePolicy": {
    "vmStartSchedule": {
      "schedule": "START-OPERATION_SCHEDULE"
    },
    "vmStopSchedule": {
      "schedule": "STOP-OPERATION_SCHEDULE"
    },
    "timeZone": "TIME_ZONE",
    "startTime":"INITIATION_DATE",
    "expirationTime":"END_DATE"
  }
}

Remplacez l'élément suivant :

  • PROJECT : ID de votre projet
  • REGION : région dans laquelle se trouvent les instances de VM que vous souhaitez associer à cette programmation d'instances.
  • SCHEDULE_NAME : nom de la nouvelle programmation d'instances.
  • SCHEDULE_DESCRIPTION (facultatif) : description de la nouvelle programmation d'instances
  • START-OPERATION_SCHEDULE ou STOP-OPERATION_SCHEDULE : Spécifiez au moins l'un des éléments suivants :
    • START-OPERATION_SCHEDULE : programme qui décrit le démarrage des instances de VM associées, mises en forme en tant qu'expression Cron. Si vous souhaitez que les instances de VM démarrent à une heure spécifique, planifiez l'opération 15 minutes plus tôt que nécessaire. Pour en savoir plus, consultez la section Programmation d'une opération de démarrage.
    • STOP-OPERATION_SCHEDULE : programme qui décrit à quel moment les instances de VM associées sont arrêtées, mises en forme en tant qu'expression Cron. Si vous souhaitez que les instances de VM s'arrêtent à une heure spécifique, programmez l'opération 15 minutes plus tôt que nécessaire. Pour en savoir plus, consultez la section Programmation des opérations d'arrêt.
  • TIME_ZONE : fuseau horaire IANA basé sur l'emplacement pour cette programmation d'instances. Pour plus d'informations, consultez la section Fuseau horaire.
  • INITIATION_DATE (facultatif) : première date d'exécution de la programmation d'instances, sous la forme d'un horodatage RFC 3339. En cas d'omission, la programmation est appliquée immédiatement. Pour en savoir plus, consultez la section sur la date d'initiation.
  • END_DATE (facultatif) : dernière date d'entrée en vigueur de la programmation d'instance, au format d'horodatage RFC 3339. En cas d'omission, la programmation est appliquée indéfiniment. Pour en savoir plus, consultez la section sur la date de fin.

Chaque programmation d'instances possède les paramètres suivants :

planification d'opération de démarrage, planification d'opération d'arrêt

Des programmations décrivant le moment où la programmation d'instances démarre et arrête toutes les instances de VM associées. Une programmation d'instances peut être associée à l'une de ces programmations ou aux deux.

Lors de la création de planifications d'instances à l'aide de la console Google Cloud, vous pouvez sélectionner une heure de début, une heure d'arrêt et une fréquence ou mettre en forme chaque planification en tant qu'expression Cron. Lorsque vous créez des programmations d'instances à l'aide de gcloud CLI ou de l'API Compute Engine, vous devez formater chaque programmation comme une expression Cron.

Le tableau suivant définit les champs d'une expression Cron et les valeurs compatibles pour chaque champ.

Minute Heure jour du mois Mois Jour de la semaine
0-59 0-23 1-31

où 29-31 ne sont efficaces que pour les mois pertinents

1-12 0-6 ou SUN-SAT (dimanche au samedi)

où 0=SUN, 1=MON, … 6=SAT

En plus de ces valeurs, chaque champ d'une expression Cron peut également utiliser les caractères spéciaux suivants.
Caractère spécial Signification Exemple
* tous Si le champ du jour du mois, le champ du mois et le champ du jour de la semaine sont tous définis sur *, la planification se répète tous les jours.
- range Si le champ du jour de la semaine est défini sur MON-FRI (ou 1-5), la programmation se répète toutes les semaines, du lundi au vendredi.
, list Si le champ du mois est défini sur 1-6,8-12, la programmation se répète tous les mois, sauf juillet.

Lorsque vous écrivez une expression Cron, tenez compte des points suivants :

  • Les espaces blancs permettent de séparer les champs d'une expression Cron. N'ajoutez pas d'espace blanc superflu dans un champ qui utilise des caractères spéciaux.
  • Lorsque vous spécifiez à la fois un jour de la semaine et un jour du mois (si aucun de ces champs n'est défini sur *), la planification utilise l'union de ces valeurs, et non l'intersection. Par exemple, la planification 0 8 1 * MON démarre à 8 h chaque lundi et le premier jour de chaque mois. Cette planification ne démarre pas à 8 h uniquement les lundis qui correspondent au premier jour du mois.
fuseau horaire

Fuseau horaire IANA basé sur l'emplacement pour la programmation des opérations de démarrage et d'arrêt. La base de données de fuseaux horaires IANA définit une liste des valeurs disponibles. Ce fuseau horaire sert de référence pour les programmation des opérations de démarrage et d'arrêt, mais pas de la date de début et de la date de fin. Le fuseau horaire est facultatif lorsque vous utilisez gcloud CLI ou l'API Compute Engine. En cas d'omission, la valeur par défaut UTC est utilisée.

Certains fuseaux horaires IANA respectent l'heure d'été (DST), ce qui peut avoir un impact sur vos programmations d'instances. Les détails du passage à l'heure d'été, tels que le début et la fin de l'heure d'été, ainsi que le temps qui a été ignoré et répété, varient en fonction de chaque fuseau horaire.

date de début, date de fin

Période effective de la programmation d'instances. Ces deux valeurs sont facultatives. Les opérations se répètent chaque année, sauf si vous spécifiez ces valeurs pour limiter la planification à une seule année.

Lors de la création de planifications d'instances à l'aide de la console Google Cloud, sélectionnez une date, une heure et un fuseau horaire à l'aide des champs Date de début et Date de fin.

Lorsque vous créez des programmations d'instances à l'aide de gcloud CLI ou de l'API Compute Engine, ces valeurs sont au format d'horodatage RFC 3339 :

  YYYY-MM-DDTHH:MM:SSOFFSET

Remplacez les éléments suivants :

  • YYYY-MM-DD : date au format de l'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 au format 2 chiffres (heure 24 heures, minute à deux chiffres et seconde à 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, l'heure normale du Pacifique (PST), qui est 8 heures avant l'heure UTC, est écrite sous la forme -08:00. Sinon, pour n'utiliser aucun décalage (fuseau horaire UTC), saisissez Z.

Répertorier les programmations d'instances

Répertoriez les programmations d'instances pour afficher toutes les programmations d'instances existant pour votre projet.

Console

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

    Accéder à la page "Instances de VM"

  2. Cliquez sur l'onglet Planifications d'instances en haut de la page. La liste de toutes les programmations d'instances de ce projet s'affiche.

gcloud

Pour afficher la liste de toutes vos stratégies de ressources, y compris les programmations d'instances, à l'aide de gcloud CLI, utilisez la commande gcloud compute resource-policies list. Si vous le souhaitez, vous pouvez limiter les résultats à une région spécifique en incluant l'option --filter.

gcloud compute resource-policies list \
    [--filter="region:(REGION)"]

Remplacez l'élément suivant :

  • REGION (facultatif) : région dans laquelle se trouvent les programmations d'instances que vous souhaitez répertorier.

REST

Pour afficher la liste de toutes vos règles relatives aux ressources, y compris les programmations d'instances, dans une région spécifique à l'aide de l'API Compute Engine, envoyez une requête à l'aide de la méthode resourcePolicies.list :

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies

Remplacez l'élément suivant :

  • PROJECT : ID de votre projet
  • REGION : région dans laquelle se trouvent les programmations d'instances que vous souhaitez répertorier.

Décrire une programmation d'instances

Décrivez une programmation d'instances pour afficher sa description, le temps d'exécution, les opérations et la liste de toutes les instances de VM auxquelles elle est associée.

Console

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

    Accéder à la page "Instances de VM"

  2. Cliquez sur l'onglet Planifications d'instances en haut de la page. La liste de toutes les programmations d'instances de ce projet s'affiche.

  3. Cliquez sur le nom de la programmation d'instances que vous souhaitez décrire. La page Détails de la programmation d'instances s'ouvre pour cette programmation.

gcloud

Pour décrire une programmation d'instances à l'aide de gcloud CLI, utilisez la commande gcloud compute resource-policies describe :

gcloud compute resource-policies describe SCHEDULE_NAME \
    [--region=REGION]

Remplacez les éléments suivants :

  • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez décrire.
  • REGION (facultatif) : région dans laquelle se trouve la programmation d'instances.

Le résultat ressemble à ce qui suit :

...
description: Every Monday to Friday in 2022, start VMs at 8 AM and stop VMs at 5 PM.
...
instanceSchedulePolicy:
 expirationTime: '2022-12-31T23:59:59Z'
 startTime: '2022-01-01T00:00:00Z'
 timeZone: UTC
 vmStartSchedule:
   schedule: 0 8 * * MON-FRI
 vmStopSchedule:
   schedule: 0 17 * * MON-FRI
...
name: example-instance-schedule
region: https://www.googleapis.com/compute/v1/projects/example-project/regions/us-west1
resourceStatus:
 instanceSchedulePolicy:
   nextRunStartTime: '2022-01-03T08:00:00Z'
...
status: READY

REST

Pour décrire une programmation d'instances à l'aide de l'API Compute Engine, envoyez une requête à l'aide de la méthode resourcePolicies.get :

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME

Remplacez l'élément suivant :

  • PROJECT : ID de votre projet
  • REGION : région où se trouve la programmation d'instances.
  • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez décrire.

Le résultat ressemble à ce qui suit :

{
  ...
  "description": "Every Monday to Friday in 2022, start VMs at 8 AM and stop VMs at 5 PM.",
  "name": "example-instance-schedule",
  "instanceSchedulePolicy": {
    "vmStartSchedule": {
      "schedule": "0 8 * * MON-FRI"
    },
    "vmStopSchedule": {
      "schedule": "0 17 * * MON-FRI"
    },
    "timeZone": "UTC",
    "startTime": "2022-01-01T00:00:00Z",
    "expirationTime": "2022-12-31T23:59:59Z"
  },
  "status": "READY",
  "resourceStatus": {
    "instanceSchedulePolicy": {
      "nextRunStartTime": "2022-01-03T08:00:00Z"
    }
  },
  ...
}

Supprimer une programmation d'instances

Supprimez une programmation d'instances lorsque vous n'en avez plus besoin. Pour ce faire, supprimez les instances de VM associées et supprimez la stratégie de ressources.

Console

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

    Accéder à la page "Instances de VM"

  2. Cliquez sur l'onglet Planifications d'instances en haut de la page. La liste de toutes les programmations d'instances de ce projet s'affiche.

  3. Cochez les cases correspondant aux programmations d'instances que vous souhaitez supprimer.

  4. Cliquez sur  Supprimer en haut de la page. Une nouvelle boîte de dialogue s'ouvre pour confirmer cette action.

  5. Dans la boîte de dialogue, cliquez sur Supprimer.

gcloud

  1. Si cette programmation d'instances est associée à des instances de VM, supprimez-les.
    1. Pour vérifier à quelles instances de VM cette programmation est associée, décrivez la programmation d'instances.
    2. Pour chaque instance de VM à laquelle cette programmation est associée, supprimez la programmation d'instances.
  2. Pour supprimer une programmation d'instances à l'aide de gcloud CLI, utilisez la commande gcloud compute resource-policies delete :

    gcloud compute resource-policies delete SCHEDULE_NAME \
       [--region=REGION]
    

    Remplacez les éléments suivants :

    • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez supprimer.
    • REGION (facultatif) : région dans laquelle se trouve la programmation d'instances.

REST

  1. Si cette programmation d'instances est associée à des instances de VM, supprimez-les.
    1. Pour vérifier à quelles instances de VM cette programmation est associée, décrivez la programmation d'instances.
    2. Pour chaque instance de VM à laquelle cette programmation est associée, supprimez la programmation d'instances.
  2. Pour supprimer une programmation d'instances à l'aide de l'API Compute Engine, envoyez une requête à l'aide de la méthode resourcePolicies.delete :

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME
    

    Remplacez l'élément suivant :

    • PROJECT : ID de votre projet
    • REGION : région dans laquelle se trouve la programmation d'instances.
    • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez supprimer.

Utiliser des programmations d'instances avec des instances de VM

Pour utiliser une programmation d'instances, associez-la à une ou plusieurs instances de VM que vous souhaitez suivre. Vous pouvez associer une programmation d'instance à une instance de VM existante ou lors de la création d'une instance de VM. Pour empêcher une instance de VM de suivre une programmation d'instances associée, supprimez la programmation de cette instance de VM.

Associer une programmation d'instances lors de la création d'une instance de VM

Pour associer une programmation d'instances à une nouvelle instance de VM, vous devez créer l'instance de VM dans la même région que celle que vous utilisez. Découvrez comment créer une instance de VM.

Console

Vous ne pouvez pas associer une programmation d'instances lors de la création d'une instance à l'aide de la console Google Cloud. Pour utiliser la console Google Cloud afin d'associer une programmation d'instances à une nouvelle instance de VM, créez une instance de VM, puis associez une programmation à l'instance de VM.

gcloud

Pour associer une programmation d'instance à une instance de VM à l'aide de gcloud CLI, exécutez la commande gcloud compute instances create avec l'option --resource-policies. Par exemple, pour créer une instance de VM à partir d'une image publique avec une programmation d'instances associée, exécutez la commande suivante :

gcloud compute instances create VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    [--zone=ZONE] \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    [--image-project IMAGE_PROJECT]

Remplacez l'élément suivant :

  • VM_NAME : nom de l'instance de VM à laquelle vous souhaitez associer une programmation d'instances.
  • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez associer.
  • ZONE (facultatif) : zone où se trouve votre instance de VM.
  • Facultatif : créer une instance de VM à partir d'une image publique :
    • IMAGE ou IMAGE_FAMILY : spécifiez l'un des éléments suivants :
    • IMAGE : version requise d'une image publique. Exemple :--image debian-10-buster-v20200309
    • IMAGE_FAMILY : famille d'images. Cette action crée la VM à partir de l'image de l'OS la plus récente et non obsolète. Par exemple, si vous spécifiez --image-family debian-10, Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images Debian 10.
    • IMAGE_PROJECT : projet contenant l'image.

REST

Pour associer une programmation d'instance à une instance de VM à l'aide de l'API Compute Engine, envoyez une requête à l'aide de la méthode instances.insert et ajoutez l'attribut resourcePolicies. Par exemple, pour créer une instance de VM à partir d'une image publique avec une programmation d'instances associée, exécutez la requête suivante :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "resourcePolicies": [
    "https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
  ]
}

Remplacez l'élément suivant :

  • PROJECT_ID : ID du projet dans lequel créer la VM.
  • ZONE : zone dans laquelle créer la VM.
  • MACHINE_TYPE_ZONE : zone contenant 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.
  • Facultatif : créer une instance de VM à partir d'une image publique :
    • IMAGE_PROJECT : projet contenant l'image. Par exemple, si vous spécifiez debian-10 comme famille d'images, spécifiez debian-cloud comme projet d'image.
    • IMAGE ou IMAGE_FAMILY : spécifiez l'un des éléments suivants :
    • IMAGE : version requise d'une image publique. Par exemple, "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309".
    • IMAGE_FAMILY : famille d'images. Cette action crée la VM à partir de l'image de l'OS la plus récente et non obsolète. Par exemple, si vous spécifiez "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images Debian 10.
  • REGION : région où se trouve la programmation d'instances.
  • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez associer.

Vous pouvez vérifier si la programmation d'instances est correctement exécutée en consultant les journaux d'audit de la stratégie de ressources de programmation d'instances et de l'instance de VM associée. Vous devrez peut-être attendre jusqu'à 15 minutes après l'heure programmée de chaque opération.

Associer une programmation d'instances à une instance de VM existante

Vous pouvez associer une programmation d'instances à toute instance de VM existante située dans la même région que celle de l'instance.

Console

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

    Accéder à la page "Instances de VM"

  2. Cliquez sur l'onglet Planifications d'instances en haut de la page. La liste de toutes les programmations d'instances de ce projet s'affiche.

  3. Cliquez sur le nom de la programmation d'instances que vous souhaitez associer. La page Détails de la programmation d'instances s'ouvre.

  4. Cliquez sur Ajouter des instances à la programmation. Le volet Ajouter des instances à la programmation s'ouvre.

  5. Cochez la case correspondant à chaque instance de VM à laquelle vous souhaitez associer cette programmation.

  6. Cliquez sur Ajouter.

gcloud

Pour associer une programmation d'instances à une instance de VM à l'aide de gcloud CLI, utilisez la commande gcloud compute instances add-resource-policies :

gcloud compute instances add-resource-policies VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    [--zone=ZONE]

Remplacez les éléments suivants :

  • VM_NAME : nom de l'instance de VM à laquelle vous souhaitez associer une programmation d'instances.
  • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez associer.
  • ZONE (facultatif) : zone où se trouve votre instance de VM.

REST

Pour associer une programmation d'instances à une instance de VM à l'aide de l'API Compute Engine, envoyez une requête à l'aide de la méthode instances.addResourcePolicies :

POST https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME/addResourcePolicies
{
  "resourcePolicies": "https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
}

Remplacez l'élément suivant :

  • PROJECT : ID de votre projet
  • ZONE : zone où se trouve votre instance de VM.
  • VM_NAME : nom de l'instance de VM à laquelle vous souhaitez associer une programmation d'instances.
  • REGION : région où se trouve la programmation d'instances.
  • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez associer.

Vous pouvez vérifier si la programmation d'instances est correctement exécutée en consultant les journaux d'audit de la stratégie de ressources de programmation d'instances et de l'instance de VM associée. Vous devrez peut-être attendre jusqu'à 15 minutes après l'heure programmée de chaque opération.

Supprimer une programmation d'instances d'une instance de VM

Pour empêcher une instance de VM de suivre une programmation d'instance, supprimez la programmation d'instance de l'instance de VM.

Console

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

    Accéder à la page "Instances de VM"

  2. Cliquez sur l'onglet Planifications d'instances en haut de la page. La liste des programmations d'instances pour ce projet s'affiche.

  3. Cliquez sur le nom de la programmation d'instances que vous souhaitez supprimer. La page Détails de la programmation d'instances s'ouvre.

  4. Sous la section Instances associées, cochez la case correspondant à chaque instance de VM que vous souhaitez supprimer de la programmation.

  5. Cliquez sur Supprimer des instances de la programmation. Une nouvelle boîte de dialogue s'ouvre pour confirmer cette action.

  6. Dans la boîte de dialogue, cliquez sur Supprimer.

gcloud

Pour supprimer une programmation d'instances d'une instance de VM à l'aide de gcloud CLI, utilisez la commande gcloud compute instances remove-resource-policies :

gcloud compute instances remove-resource-policies VM_NAME \
    --resource-policies=SCHEDULE_NAME \
    [--zone=ZONE]

Remplacez les éléments suivants :

  • VM_NAME : nom de l'instance de VM dont vous souhaitez supprimer une programmation d'instances.
  • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez supprimer.
  • ZONE (facultatif) : zone où se trouve votre instance de VM.

REST

Pour supprimer une programmation d'instances d'une instance de VM à l'aide de l'API Compute Engine, envoyez une requête à l'aide de la méthode instances.removeResourcePolicies :

POST https://www.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances/VM_NAME/removeResourcePolicies
{
  "resourcePolicies": "https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/SCHEDULE_NAME"
}

Remplacez l'élément suivant :

  • PROJECT : ID de votre projet
  • ZONE : zone où se trouve votre instance de VM.
  • VM_NAME : nom de l'instance de VM dont vous souhaitez supprimer une programmation d'instances.
  • REGION : région où se trouve la programmation d'instances.
  • SCHEDULE_NAME : nom de la programmation d'instances que vous souhaitez supprimer.

Étapes suivantes