Planifier le démarrage ou l'arrêt d'une VM Compute Engine


Ce tutoriel explique comment utiliser Cloud Scheduler et les fonctions Cloud Run pour démarrer et arrêter automatiquement des instances Compute Engine selon un calendrier régulier, à l'aide d'étiquettes de ressources.

Objectifs

  • Écrire et déployer un ensemble de fonctions avec des fonctions Cloud Run qui démarrent et arrêtent des instances Compute Engine
  • À l'aide de Cloud Scheduler, créez un ensemble de tâches qui programment les instances avec un libellé de ressource dev, de sorte qu'elles s'exécutent du lundi au vendredi de 9h00 à 17h00 en concordance avec les horaires de bureau habituels.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

  • Cloud Scheduler
  • Cloud Run functions
  • Pub/Sub
  • Compute Engine

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

  1. Configurez votre environnement pour Cloud Scheduler.

    Configurer votre environnement

  2. Enable the Cloud Run functions, Pub/Sub, and Compute Engine APIs.

    Enable the APIs

Architecture de l'application

Cette solution comprend les composants Google Cloud suivants :

  • Instance Compute Engine que nous souhaitons exécuter selon un calendrier spécifique.
  • Fonctions Cloud Run pour démarrer et arrêter l'instance pour laquelle nous souhaitons définir un calendrier d'exécution.
  • Messages Pub/Sub envoyés et reçus pour chaque événement de démarrage ou d'arrêt.
  • Tâches Cloud Scheduler permettant d'appeler les fonctions de démarrage et d'arrêt de l'instance en fonction du calendrier défini.

Diagramme de l'architecture système illustrant Cloud Scheduler programmant une instance Compute Engine via Pub/Sub

Exigences relatives aux emplacements

Certains composants ne sont compatibles qu'avec certaines régions :

  • Instance Compute Engine: compatible avec toutes les régions listées dans la section Régions et zones.
  • Fonctions Cloud Run: compatibles avec les régions listées dans la section Emplacements.
  • Messages Pub/Sub: compatibilité mondiale, car Pub/Sub est un service mondial
  • Tâches Cloud Scheduler avec des cibles Pub/Sub : compatibilité avec n'importe quel emplacement Google Cloud

Pourquoi pas HTTP au lieu de Pub/Sub ?

Pour simplifier cette architecture, vous pouvez utiliser les déclencheurs HTTP des fonctions Cloud Run au lieu des déclencheurs Pub/Sub.

Ce tutoriel utilise Pub/Sub comme déclencheur de fonctions Cloud Run, car cette méthode était auparavant plus sécurisée que l'utilisation de HTTP. Toutefois, HTTP est également un choix valide et peut désormais être sécurisé en exigeant une authentification.

Pour découvrir comment sécuriser les fonctions Cloud Run, consultez la présentation de la sécurité des fonctions Cloud Run. Pour comparer les déclencheurs HTTP et Pub/Sub, consultez la documentation sur les déclencheurs Cloud Run Functions.

Configurer l'instance Compute Engine

Console

  1. Accédez à la page Instances de VM de la console Google Cloud.
    Accéder à la page "Instances de VM"
  2. Cliquez sur Créer une instance.
  3. Définissez le paramètre Nom sur dev-instance.
  4. Sous Libellés, cliquez sur Ajouter des libellés.
  5. Cliquez sur Ajouter une étiquette.
  6. Saisissez env pour le champ Clé et dev pour Valeur.
  7. Pour le paramètre Région, sélectionnez us-west1.
  8. Pour le paramètre Zone, sélectionnez us-west1-b.
  9. Cliquez sur Enregistrer.
  10. Cliquez sur Créer en bas de la page.

gcloud

gcloud compute instances create dev-instance \
    --network default \
    --zone us-west1-b \
    --labels=env=dev

Déployer des fonctions déclenchées par Pub/Sub via des fonctions Cloud Run

Créer et déployer les fonctions

Console

Créez la fonction de démarrage.

  1. Accédez à la page Fonctions Cloud Run dans la console Google Cloud.
    Accéder à la page "Cloud Run Functions"
  2. Cliquez sur Créer une fonction.
  3. Dans la section Environnement, sélectionnez 1re génération.
  4. Définissez le paramètre Nom de la fonction sur startInstancePubSub.
  5. Conservez la valeur par défaut du paramètre Région.
  6. Pour Type de déclencheur, sélectionnez Cloud Pub/Sub.
  7. Pour le champ Select a Cloud Pub/Sub topic (Sélectionner un sujet Cloud Pub/Sub), cliquez sur Create a topic (Créer un sujet).
  8. La boîte de dialogue Créer un sujet s'affiche.
    1. Sous ID du sujet, saisissez start-instance-event.
    2. Cliquez sur Créer pour fermer la boîte de dialogue.
  9. Cliquez sur Enregistrer au bas de la zone Déclencheur.
  10. Cliquez sur Suivant au bas de la page.
  11. Pour Environnement d'exécution, sélectionnez Node.js 16 ou version ultérieure.
  12. Dans le champ Point d'entrée, saisissez startInstancePubSub.
  13. Dans la partie gauche de l'éditeur de code, sélectionnez index.js.
  14. Remplacez le code de démarrage par le code suivant :

    const compute = require('@google-cloud/compute');
    const instancesClient = new compute.InstancesClient();
    const operationsClient = new compute.ZoneOperationsClient();
    
    async function waitForOperation(projectId, operation) {
      while (operation.status !== 'DONE') {
        [operation] = await operationsClient.wait({
          operation: operation.name,
          project: projectId,
          zone: operation.zone.split('/').pop(),
        });
      }
    }
    
    /**
     * Starts Compute Engine instances.
     *
     * Expects a PubSub message with JSON-formatted event data containing the
     * following attributes:
     *  zone - the GCP zone the instances are located in.
     *  label - the label of instances to start.
     *
     * @param {!object} event Cloud Function PubSub message event.
     * @param {!object} callback Cloud Function PubSub callback indicating
     *  completion.
     */
    exports.startInstancePubSub = async (event, context, callback) => {
      try {
        const project = await instancesClient.getProjectId();
        const payload = _validatePayload(event);
        const options = {
          filter: `labels.${payload.label}`,
          project,
          zone: payload.zone,
        };
    
        const [instances] = await instancesClient.list(options);
    
        await Promise.all(
          instances.map(async instance => {
            const [response] = await instancesClient.start({
              project,
              zone: payload.zone,
              instance: instance.name,
            });
    
            return waitForOperation(project, response.latestResponse);
          })
        );
    
        // Operation complete. Instance successfully started.
        const message = 'Successfully started instance(s)';
        console.log(message);
        callback(null, message);
      } catch (err) {
        console.log(err);
        callback(err);
      }
    };
    
    /**
     * Validates that a request payload contains the expected fields.
     *
     * @param {!object} payload the request payload to validate.
     * @return {!object} the payload object.
     */
    const _validatePayload = event => {
      let payload;
      try {
        payload = JSON.parse(Buffer.from(event.data, 'base64').toString());
      } catch (err) {
        throw new Error('Invalid Pub/Sub message: ' + err);
      }
      if (!payload.zone) {
        throw new Error("Attribute 'zone' missing from payload");
      } else if (!payload.label) {
        throw new Error("Attribute 'label' missing from payload");
      }
      return payload;
    };
  15. Dans la partie gauche de l'éditeur de code, sélectionnez package.json.

  16. Remplacez le code de démarrage par le code suivant :

    {
      "name": "cloud-functions-schedule-instance",
      "version": "0.1.0",
      "private": true,
      "license": "Apache-2.0",
      "author": "Google Inc.",
      "repository": {
        "type": "git",
        "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git"
      },
      "engines": {
        "node": ">=16.0.0"
      },
      "scripts": {
        "test": "c8 mocha -p -j 2 test/*.test.js --timeout=20000"
      },
      "devDependencies": {
        "c8": "^10.0.0",
        "mocha": "^10.0.0",
        "proxyquire": "^2.0.0",
        "sinon": "^18.0.0"
      },
      "dependencies": {
        "@google-cloud/compute": "^4.0.0"
      }
    }
    
  17. Cliquez sur Déployer au bas de la page.

Créez la fonction d'arrêt.

  1. Vous devez vous trouver sur la page Fonctions Cloud Run de la console Google Cloud.
  2. Cliquez sur Créer une fonction.
  3. Dans la section Environnement, sélectionnez 1re génération.
  4. Définissez le paramètre Nom de la fonction sur stopInstancePubSub.
  5. Conservez la valeur par défaut du paramètre Région.
  6. Pour Type de déclencheur, sélectionnez Cloud Pub/Sub.
  7. Pour le champ Select a Cloud Pub/Sub topic (Sélectionner un sujet Cloud Pub/Sub), cliquez sur Create a topic (Créer un sujet).
  8. La boîte de dialogue Créer un sujet s'affiche.
    1. Sous ID du sujet, saisissez stop-instance-event.
    2. Cliquez sur Créer pour fermer la boîte de dialogue.
  9. Cliquez sur Enregistrer au bas de la zone Déclencheur.
  10. Cliquez sur Suivant au bas de la page.
  11. Pour Environnement d'exécution, sélectionnez Node.js 16 ou version ultérieure.
  12. Dans le champ Point d'entrée, saisissez stopInstancePubSub.
  13. Dans la partie gauche de l'éditeur de code, sélectionnez index.js.
  14. Remplacez le code de démarrage par le code suivant :

    const compute = require('@google-cloud/compute');
    const instancesClient = new compute.InstancesClient();
    const operationsClient = new compute.ZoneOperationsClient();
    
    async function waitForOperation(projectId, operation) {
      while (operation.status !== 'DONE') {
        [operation] = await operationsClient.wait({
          operation: operation.name,
          project: projectId,
          zone: operation.zone.split('/').pop(),
        });
      }
    }
    
    /**
     * Stops Compute Engine instances.
     *
     * Expects a PubSub message with JSON-formatted event data containing the
     * following attributes:
     *  zone - the GCP zone the instances are located in.
     *  label - the label of instances to stop.
     *
     * @param {!object} event Cloud Function PubSub message event.
     * @param {!object} callback Cloud Function PubSub callback indicating completion.
     */
    exports.stopInstancePubSub = async (event, context, callback) => {
      try {
        const project = await instancesClient.getProjectId();
        const payload = _validatePayload(event);
        const options = {
          filter: `labels.${payload.label}`,
          project,
          zone: payload.zone,
        };
    
        const [instances] = await instancesClient.list(options);
    
        await Promise.all(
          instances.map(async instance => {
            const [response] = await instancesClient.stop({
              project,
              zone: payload.zone,
              instance: instance.name,
            });
    
            return waitForOperation(project, response.latestResponse);
          })
        );
    
        // Operation complete. Instance successfully stopped.
        const message = 'Successfully stopped instance(s)';
        console.log(message);
        callback(null, message);
      } catch (err) {
        console.log(err);
        callback(err);
      }
    };
    
    /**
     * Validates that a request payload contains the expected fields.
     *
     * @param {!object} payload the request payload to validate.
     * @return {!object} the payload object.
     */
    const _validatePayload = event => {
      let payload;
      try {
        payload = JSON.parse(Buffer.from(event.data, 'base64').toString());
      } catch (err) {
        throw new Error('Invalid Pub/Sub message: ' + err);
      }
      if (!payload.zone) {
        throw new Error("Attribute 'zone' missing from payload");
      } else if (!payload.label) {
        throw new Error("Attribute 'label' missing from payload");
      }
      return payload;
    };
  15. Dans la partie gauche de l'éditeur de code, sélectionnez package.json.

  16. Remplacez le code de démarrage par le code suivant :

    {
      "name": "cloud-functions-schedule-instance",
      "version": "0.1.0",
      "private": true,
      "license": "Apache-2.0",
      "author": "Google Inc.",
      "repository": {
        "type": "git",
        "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git"
      },
      "engines": {
        "node": ">=16.0.0"
      },
      "scripts": {
        "test": "c8 mocha -p -j 2 test/*.test.js --timeout=20000"
      },
      "devDependencies": {
        "c8": "^10.0.0",
        "mocha": "^10.0.0",
        "proxyquire": "^2.0.0",
        "sinon": "^18.0.0"
      },
      "dependencies": {
        "@google-cloud/compute": "^4.0.0"
      }
    }
    
  17. Cliquez sur Déployer au bas de la page.

gcloud

Créez les sujets Pub/Sub.

gcloud pubsub topics create start-instance-event
gcloud pubsub topics create stop-instance-event

Obtenir le code

  1. Téléchargez le code.

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

    Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.

  2. Accédez au répertoire approprié.

    cd nodejs-docs-samples/functions/scheduleinstance/

Créez les fonctions de démarrage et d'arrêt.

Vous devez vous trouver dans le répertoire nodejs-docs-samples/functions/scheduleinstance/.

gcloud functions deploy startInstancePubSub \
    --trigger-topic start-instance-event \
    --runtime nodejs18 \
    --allow-unauthenticated
gcloud functions deploy stopInstancePubSub \
    --trigger-topic stop-instance-event \
    --runtime nodejs18 \
    --allow-unauthenticated

Vérifier que les fonctions sont opérationnelles (facultatif)

Console

Arrêter l'instance

  1. Accédez à la page Fonctions Cloud Run dans la console Google Cloud.
    Accéder à la page "Cloud Run Functions"
  2. Cliquez sur la fonction nommée stopInstancePubSub.
  3. Plusieurs onglets doivent s'afficher : Général, Déclencheur, Source, Autorisations et Test. Cliquez sur l'onglet Test.
  4. Pour le paramètre Événement déclencheur, saisissez les informations suivantes :

    {"data":"eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo="}
    

    • Il s'agit simplement de la chaîne encodée en base64 pour {"zone":"us-west1-b", "label":"env=dev"}.

    • Si vous souhaitez encoder votre propre chaîne, vous pouvez utiliser n'importe quel outil d'encodage base64 en ligne.

  5. Cliquez sur le bouton Tester la fonction.

  6. Une fois l'exécution terminée, Successfully stopped instance dev-instance devrait s'afficher sous Sortie. L'arrêt total de l'instance peut prendre jusqu'à 60 secondes.

    • Si au lieu de cela error: 'Error: function failed to load.' s'affiche, attendez 10 secondes environ pour que la fonction termine le déploiement, puis réessayez.

    • Si au lieu de cela error: 'Error: function execution attempt timed out.' s'affiche, passez simplement à l'étape suivante pour déterminer si l'instance prend simplement un certain temps à s'arrêter.

    • Si la fonction s'exécute correctement et que rien ne s'affiche, cela peut indiquer que le délai d'exécution a été dépassé. Passez à l'étape suivante pour vérifier si cela vient du fait que l'instance met beaucoup de temps à s'arrêter.

  7. Accédez à la page Instances de VM de la console Google Cloud.
    Accéder à la page "Instances de VM"

  8. Vérifiez qu'un carré gris est présent à côté du nom de l'instance nommée dev-instance. Ce carré indique que l'instance s'est arrêtée. L'arrêt total de l'instance peut prendre jusqu'à 30 secondes.

    • Si l'instance ne semble pas s'arrêter, essayez de cliquer sur Actualiser en haut de la page.

Démarrer l'instance

  1. Accédez à la page Fonctions Cloud Run dans la console Google Cloud.
    Accéder à la page "Cloud Run Functions"
  2. Cliquez sur la fonction nommée startInstancePubSub.
  3. Plusieurs onglets doivent s'afficher : Général, Déclencheur, Source, Autorisations et Test. Cliquez sur l'onglet Test.
  4. Pour le paramètre Événement déclencheur, saisissez les informations suivantes :

    {"data":"eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo="}
    

    • Encore une fois, il s'agit simplement de la chaîne encodée en base64 pour {"zone":"us-west1-b", "label":"env=dev"}.
  5. Cliquez sur le bouton Tester la fonction.

  6. Une fois l'exécution terminée, Successfully started instance dev-instance devrait s'afficher sous Sortie.

  7. Accédez à la page Instances de VM de la console Google Cloud.
    Accéder à la page "Instances de VM"

  8. Vérifiez qu'une coche verte est présente à côté du nom de l'instance nommée dev-instance. Cette coche indique que l'instance s'est arrêtée. Le démarrage effectif de l'instance peut prendre jusqu'à 30 secondes.

gcloud

Pour arrêter l'instance, procédez comme suit :

  1. Appelez la fonction permettant d'arrêter l'instance.

    gcloud functions call stopInstancePubSub \
        --data '{"data":"eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo="}'
    
    • Il s'agit simplement de la chaîne encodée en base64 pour {"zone":"us-west1-b", "label":"env=dev"}.

    • Si vous voulez encoder votre propre chaîne, vous pouvez utiliser n'importe quel outil d'encodage base64. Voici un exemple d'utilisation avec l'outil de ligne de commande base64 :

      echo '{"zone":"us-west1-b", "label":"env=dev"}' | base64
      
      eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo=
      

    Lorsque la fonction a terminé, le résultat suivant doit s'afficher :

    result: Successfully stopped instance dev-instance
    

    L'arrêt total de l'instance peut prendre jusqu'à 60 secondes.

    • Si au lieu de ce résultat, l'erreur suivante s'affiche :

      error: 'Error: function failed to load.`
      

      Patientez environ 10 secondes pour que le déploiement de la fonction s'achève, puis réessayez.

    • Si au lieu de ce résultat, l'erreur suivante s'affiche :

      error: `Error: function execution attempt timed out.`
      

      Passez à l'étape suivante pour vérifier si cela vient du fait que l'instance met beaucoup de temps à s'arrêter.

    • Si vous n'obtenez aucun résultat, cela peut indiquer que le délai d'exécution de la fonction a été dépassé. Passez à l'étape suivante pour vérifier si cela vient du fait que l'instance met beaucoup de temps à s'arrêter.

  2. Vérifiez que l'instance est à l'état TERMINATED. L'arrêt total de l'instance peut prendre jusqu'à 30 secondes.

    gcloud compute instances describe dev-instance \
        --zone us-west1-b \
        | grep status
    
    status: TERMINATED
    

Démarrer l'instance

  1. Appelez la fonction permettant de démarrer l'instance.

    gcloud functions call startInstancePubSub \
        --data '{"data":"eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo="}'
    
    • Encore une fois, il s'agit simplement de la chaîne encodée en base64 pour {"zone":"us-west1-b", "label":"env=dev"}.

    Lorsque la fonction a terminé, le résultat suivant doit s'afficher :

    result: Successfully started instance dev-instance
    
  2. Vérifiez que l'instance est à l'état RUNNING. Le démarrage effectif de l'instance peut prendre jusqu'à 30 secondes.

    gcloud compute instances describe dev-instance \
        --zone us-west1-b \
        | grep status
    
    status: RUNNING
    

Configurer les tâches Cloud Scheduler pour qu'elles appellent Pub/Sub

Créer les tâches

Console

Créez la tâche de démarrage.

  1. Accédez à la page Cloud Scheduler dans la console Google Cloud.
    Accéder à la page Cloud Scheduler
  2. Cliquez sur Create a job (Créer une tâche).
  3. Conservez la région par défaut.
  4. Définissez le paramètre Nom sur startup-dev-instances.
  5. Pour le paramètre Fréquence, saisissez 0 9 * * 1-5.
    • Cette opération est effectuée tous les jours à 9h du lundi au vendredi.
  6. Pour le paramètre Fuseau horaire, sélectionnez le pays et le fuseau horaire souhaités. Cet exemple utilisera United States et Los Angeles.
  7. Cliquez sur Continuer.
  8. Pour Type de cible, sélectionnez Pub/Sub.
  9. Sélectionnez start-instance-event dans le menu déroulant des sujets.
  10. Dans le champ Message, saisissez ce qui suit:
    {"zone":"us-west1-b","label":"env=dev"}
    
  11. Cliquez sur Créer.

Créez la tâche d'arrêt.

  1. Vous devez vous trouver sur la page Cloud Scheduler de la console Google Cloud.
  2. Cliquez sur Créer une tâche.
  3. Conservez la région par défaut, puis cliquez sur Suivant au bas de la page.
  4. Définissez le paramètre Nom sur shutdown-dev-instances.
  5. Pour le paramètre Fréquence, saisissez 0 17 * * 1-5.
    • Cette opération est effectuée tous les jours à 17h du lundi au vendredi.
  6. Pour le paramètre Fuseau horaire, sélectionnez le pays et le fuseau horaire souhaités. Cet exemple utilisera United States et Los Angeles.
  7. Cliquez sur Continuer.
  8. Pour Type de cible, sélectionnez Pub/Sub.
  9. Sélectionnez stop-instance-event dans le menu déroulant des sujets.
  10. Dans le champ Message, saisissez ce qui suit:
    {"zone":"us-west1-b","label":"env=dev"}
    
  11. Cliquez sur Créer.

gcloud

Créez la tâche de démarrage.

gcloud scheduler jobs create pubsub startup-dev-instances \
    --schedule '0 9 * * 1-5' \
    --topic start-instance-event \
    --message-body '{"zone":"us-west1-b", "label":"env=dev"}' \
    --time-zone 'America/Los_Angeles' \
    --location us-central1

Créez la tâche d'arrêt.

gcloud scheduler jobs create pubsub shutdown-dev-instances \
    --schedule '0 17 * * 1-5' \
    --topic stop-instance-event \
    --message-body '{"zone":"us-west1-b", "label":"env=dev"}' \
    --time-zone 'America/Los_Angeles' \
    --location us-central1

Vérifier que les tâches sont opérationnelles (facultatif)

Console

Arrêter l'instance

  1. Accédez à la page Cloud Scheduler dans la console Google Cloud.
    Accéder à la page Cloud Scheduler
  2. Pour la tâche nommée shutdown-dev-instances, cliquez sur le bouton Exécuter maintenant situé à l'extrémité droite de la page.
  3. Accédez à la page Instances de VM de la console Google Cloud.
    Accéder à la page "Instances de VM"
  4. Vérifiez qu'un carré gris est présent à côté du nom de l'instance nommée dev-instance. Ce carré indique que l'instance s'est arrêtée. L'arrêt total de l'instance peut prendre jusqu'à 30 secondes.

Démarrer l'instance

  1. Accédez à la page Cloud Scheduler dans la console Google Cloud.
    Accéder à la page Cloud Scheduler
  2. Pour la tâche nommée startup-dev-instances, cliquez sur le bouton Exécuter maintenant situé à l'extrémité droite de la page.
  3. Accédez à la page Instances de VM de la console Google Cloud.
    Accéder à la page "Instances de VM"
  4. Vérifiez qu'une coche verte est présente à côté du nom de l'instance nommée dev-instance. Cette coche indique que l'instance s'est arrêtée. Le démarrage effectif de l'instance peut prendre jusqu'à 30 secondes.

gcloud

Pour arrêter l'instance, procédez comme suit :

  1. Exécutez la tâche Scheduler permettant d'arrêter l'instance.

    gcloud beta scheduler jobs run shutdown-dev-instances
    
  2. Vérifiez que l'instance est à l'état TERMINATED. L'arrêt total de l'instance peut prendre jusqu'à 30 secondes.

    gcloud compute instances describe dev-instance \
        --zone us-west1-b \
        | grep status
    
    status: TERMINATED
    

Démarrer l'instance

  1. Exécutez la tâche Scheduler permettant de démarrer l'instance.

    gcloud beta scheduler jobs run startup-dev-instances
    
  2. Vérifiez que l'instance est à l'état RUNNING. Le démarrage effectif de l'instance peut prendre jusqu'à 30 secondes.

    gcloud compute instances describe dev-instance \
        --zone us-west1-b \
        | grep status
    
    status: RUNNING
    

Effectuer un nettoyage

Une fois le tutoriel terminé, vous pouvez procéder au nettoyage des ressources que vous avez créées afin qu'elles ne soient plus comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.

Supprimer les tâches Cloud Scheduler

  1. Accédez à la page Cloud Scheduler dans la console Google Cloud.

    Accéder à la page Cloud Scheduler

  2. Cochez les cases situées en regard de vos tâches.

  3. Cliquez sur le bouton Supprimer en haut de la page et confirmez la suppression.

Supprimer les sujets Pub/Sub

  1. Accédez à la page Pub/Sub dans la console Google Cloud.

    Accéder à la page Pub/Sub

  2. Cochez les cases situées en regard de vos sujets.

  3. Cliquez sur le bouton Supprimer en haut de la page et confirmez la suppression.

Supprimer les fonctions déployées via Cloud Run

  1. Accédez à la page Fonctions Cloud Run dans la console Google Cloud.

    Accéder à la page "Cloud Run Functions"

  2. Cochez les cases situées en regard de vos fonctions.

  3. Cliquez sur le bouton Supprimer en haut de la page et confirmez la suppression.

Supprimer l'instance Compute Engine

Pour supprimer une instance Compute Engine, procédez comme suit :

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Étapes suivantes

  • Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Cloud Architecture Center.