Starten oder Beenden einer Compute Engine-VM planen


In dieser Anleitung erfahren Sie, wie Sie Cloud Scheduler und Cloud Functions verwenden, um Compute Engine-Instanzen mithilfe von Ressourcenlabels automatisch nach einem regelmäßigen Zeitplan zu starten und zu beenden.

Lernziele

  • Erstellen und Bereitstellen einer Reihe von Funktionen mit Cloud Functions, die Instanzen von Compute Engine starten und stoppen.
  • Erstellen Sie mit Cloud Scheduler eine Reihe von Jobs, die Instanzen mit einem Ressourcenlabel dev so planen, dass sie montags bis freitags von 09:00 bis 17:00 Uhr ausgeführt werden und den typischen Geschäftszeiten entsprechen.

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

  • Cloud Scheduler
  • Cloud Functions
  • Pub/Sub
  • Compute Engine

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweise

  1. Richten Sie Ihre Umgebung für Cloud Scheduler ein.

    Umgebung einrichten

  2. Cloud Functions, Pub/Sub, and Compute Engine APIs aktivieren.

    Aktivieren Sie die APIs

Anwendungsarchitektur

Diese Lösung umfasst die folgenden Google Cloud-Komponenten:

Abbildung: Diagramm der Systemarchitektur, das zeigt, wie Cloud Scheduler eine Compute Engine-Instanz über Pub/Sub plant

Standortanforderungen

Einige Komponenten werden nur in bestimmten Regionen unterstützt:

  • Compute Engine-Instanz: Wird in allen unter Regionen und Zonen aufgeführten Regionen unterstützt.
  • Cloud Functions: Wird in den unter Standorte aufgeführten Regionen unterstützt.
  • Pub/Sub-Nachrichten: Sie werden global unterstützt, da Pub/Sub ein globaler Dienst ist.
  • Cloud Scheduler-Jobs mit Pub/Sub-Zielen, die an allen Google Cloud-Standorten unterstützt werden.

Warum nicht HTTP statt Pub/Sub?

Wenn Sie diese Architektur vereinfachen möchten, können Sie HTTP-Trigger von Cloud Functions anstelle von Pub/Sub-Triggern verwenden.

In dieser Anleitung wird Pub/Sub als Cloud Functions-Trigger verwendet, da diese Methode früher sicherer als HTTP war. HTTP ist jedoch auch eine gute Wahl und kann jetzt durch eine Authentifizierung abgesichert werden.

Weitere Informationen zum Sichern von Cloud Functions finden Sie in der Übersicht zur Sicherheit von Cloud Functions. Einen Vergleich zwischen HTTP- und Pub/Sub-Triggern finden Sie in der Dokumentation zu Cloud Functions-Triggern.

Compute Engine-Instanz einrichten

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
    Zur Seite "VM-Instanzen".
  2. Klicken Sie auf Instanz erstellen.
  3. Legen Sie als Name dev-instance fest.
  4. Klicken Sie unter Labels auf Labels hinzufügen.
  5. Klicken Sie auf Label hinzufügen.
  6. Geben Sie env für Schlüssel und dev für Wert ein.
  7. Wählen Sie als Region us-west1 aus.
  8. Wählen Sie als Zone us-west1-b aus.
  9. Klicken Sie auf Speichern.
  10. Klicken Sie unten auf der Seite auf Erstellen.

gcloud

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

Funktionen bereitstellen, die von Pub/Sub über Cloud Functions ausgelöst werden

Funktionen erstellen und implementieren

Console

Erstellen Sie die Startfunktion.

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Functions auf.
    Zur Seite "Cloud Functions".
  2. Klicken Sie auf Funktion erstellen.
  3. Wählen Sie für Umgebung die Option 1. Generation aus.
  4. Legen Sie als Funktionsnamen startInstancePubSub fest.
  5. Behalten Sie für Region den Standardwert bei.
  6. Wählen Sie als Triggertyp die Option Cloud Pub/Sub aus.
  7. Klicken Sie unter Cloud Pub/Sub-Thema auswählen auf Thema erstellen.
  8. Das Dialogfeld Thema erstellen sollte angezeigt werden.
    1. Geben Sie unter Themen-ID start-instance-event ein.
    2. Klicken Sie auf Erstellen, um das Dialogfeld abzuschließen.
  9. Klicken Sie unten im Kästchen Trigger auf Speichern.
  10. Klicken Sie unten auf der Seite auf Weiter.
  11. Wählen Sie als Laufzeit Node.js 16 oder höher aus.
  12. Geben Sie als Einstiegspunkt startInstancePubSub ein.
  13. Wählen Sie links im Code-Editor index.js aus.
  14. Ersetzen Sie den Startcode durch den folgenden Code:

    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. Wählen Sie links im Code-Editor package.json aus.

  16. Ersetzen Sie den Startcode durch den folgenden Code:

    {
      "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": "^8.0.0",
        "mocha": "^10.0.0",
        "proxyquire": "^2.0.0",
        "sinon": "^16.0.0"
      },
      "dependencies": {
        "@google-cloud/compute": "^4.0.0"
      }
    }
    
  17. Klicken Sie unten auf der Seite auf Deploy (Bereitstellen).

Erstellen Sie die Stoppfunktion.

  1. Sie sollten sich in der Google Cloud Console auf der Seite Cloud Functions befinden.
  2. Klicken Sie auf Funktion erstellen.
  3. Wählen Sie für Umgebung die Option 1. Generation aus.
  4. Legen Sie als Funktionsnamen stopInstancePubSub fest.
  5. Behalten Sie für Region den Standardwert bei.
  6. Wählen Sie als Triggertyp die Option Cloud Pub/Sub aus.
  7. Klicken Sie unter Cloud Pub/Sub-Thema auswählen auf Thema erstellen.
  8. Das Dialogfeld Thema erstellen sollte angezeigt werden.
    1. Geben Sie unter Themen-ID stop-instance-event ein.
    2. Klicken Sie auf Erstellen, um das Dialogfeld abzuschließen.
  9. Klicken Sie unten im Kästchen Trigger auf Speichern.
  10. Klicken Sie unten auf der Seite auf Weiter.
  11. Wählen Sie als Laufzeit Node.js 16 oder höher aus.
  12. Geben Sie als Einstiegspunkt stopInstancePubSub ein.
  13. Wählen Sie links im Code-Editor index.js aus.
  14. Ersetzen Sie den Startcode durch den folgenden Code:

    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. Wählen Sie links im Code-Editor package.json aus.

  16. Ersetzen Sie den Startcode durch den folgenden Code:

    {
      "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": "^8.0.0",
        "mocha": "^10.0.0",
        "proxyquire": "^2.0.0",
        "sinon": "^16.0.0"
      },
      "dependencies": {
        "@google-cloud/compute": "^4.0.0"
      }
    }
    
  17. Klicken Sie unten auf der Seite auf Deploy (Bereitstellen).

gcloud

Erstellen Sie die Pub/Sub-Themen.

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

Code abrufen

  1. Laden Sie den Code herunter.

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

    Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.

  2. Wechseln Sie in das richtige Verzeichnis.

    cd nodejs-docs-samples/functions/scheduleinstance/
    

Erstellen Sie die Start- und Stoppfunktionen.

Sie sollten sich im Verzeichnis nodejs-docs-samples/functions/scheduleinstance/ befinden.

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

(Optional) Prüfen Sie, ob die Funktionen ordnungsgemäß funktionieren

Console

Instanz beenden

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Functions auf.
    Zur Seite "Cloud Functions".
  2. Klicken Sie auf die Funktion stopInstancePubSub.
  3. Sie sollten eine Reihe von Tabs sehen: Allgemein, Trigger, Quelle, Berechtigungen und Testen. Klicken Sie auf den Tab Testen.
  4. Geben Sie als Auslösendes Ereignis Folgendes ein:

    {"data":"eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo="}
    

    • Dies ist einfach der String mit base64-Codierung für {"zone":"us-west1-b", "label":"env=dev"}.

    • Wenn Sie Ihren eigenen String codieren möchten, können Sie ein beliebiges Base64-Codierungstool verwenden, das online zur Verfügung steht.

  5. Klicken Sie auf Funktion testen.

  6. Wenn die Ausführung abgeschlossen ist, sollte unter Ausgabe Successfully stopped instance dev-instance angezeigt werden. Es kann bis zu 60 Sekunden dauern, bis der Vorgang abgeschlossen ist.

    • Wenn stattdessen error: 'Error: function failed to load.' angezeigt wird, warten Sie etwa 10 Sekunden, bis die Bereitstellung der Funktion abgeschlossen ist, und versuchen Sie es noch einmal.

    • Wenn stattdessen error: 'Error: function execution attempt timed out.' angezeigt wird, fahren Sie einfach mit dem nächsten Schritt fort, um zu kontrollieren, ob das Herunterfahren der Instanz lange dauert.

    • Wenn die Instanz stattdessen anhält, aber nichts angezeigt wird, wurde wahrscheinlich das Zeitlimit überschritten. Fahren Sie einfach mit dem nächsten Schritt fort, um zu sehen, ob lediglich das Herunterfahren der Instanz lange dauert.

  7. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
    Zur Seite "VM-Instanzen".

  8. Prüfen Sie, ob die Instanz mit dem Namen dev-instanceneben dem Namen ein graues Quadrat aufweist, um anzuzeigen, dass sie gestoppt wurde. Es kann bis zu 30 Sekunden dauern, bis das Herunterfahren beendet ist.

    • Wenn es wesentlich länger dauert, klicken Sie oben auf der Seite auf Aktualisieren.

Instanz starten

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Functions auf.
    Zur Seite "Cloud Functions".
  2. Klicken Sie auf die Funktion startInstancePubSub.
  3. Sie sollten eine Reihe von Tabs sehen: Allgemein, Trigger, Quelle, Berechtigungen und Testen. Klicken Sie auf den Tab Testen.
  4. Geben Sie als Auslösendes Ereignis Folgendes ein:

    {"data":"eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo="}
    

    • Auch dieser ist einfach der base64-codierte String für {"zone":"us-west1-b", "label":"env=dev"}.
  5. Klicken Sie auf Funktion testen.

  6. Wenn die Ausführung abgeschlossen ist, sollte unter Ausgabe Successfully started instance dev-instance angezeigt werden.

  7. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
    Zur Seite "VM-Instanzen".

  8. Prüfen Sie, ob die Instanz mit dem Namen dev-instance neben ihrem Namen ein grünes Häkchen hat, das angibt, dass sie ausgeführt wird. Es kann bis zu 30 Sekunden dauern, bis der Startvorgang abgeschlossen ist.

gcloud

Stoppen Sie die Instanz:

  1. Rufen Sie die Funktion auf, um die Instanz zu stoppen.

    gcloud functions call stopInstancePubSub \
        --data '{"data":"eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo="}'
    
    • Dies ist einfach der String mit base64-Codierung für {"zone":"us-west1-b", "label":"env=dev"}.

    • Wenn Sie Ihren eigenen String codieren möchten, können Sie ein beliebiges Tool verwenden. Hier ein Beispiel mit dem base64-Befehlszeilentool:

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

    Wenn die Funktion beendet ist, sollten Sie Folgendes sehen:

    result: Successfully stopped instance dev-instance
    

    Es kann bis zu 60 Sekunden dauern, bis der Vorgang abgeschlossen ist.

    • Wenn Sie stattdessen folgenden Fehler erhalten:

      error: 'Error: function failed to load.`
      

      Warten Sie einfach einen Moment, bis die Funktion abgeschlossen ist, und versuchen Sie es noch einmal.

    • Wenn Sie stattdessen folgenden Fehler erhalten:

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

      Fahren Sie einfach mit dem nächsten Schritt fort, um zu sehen, ob lediglich das Herunterfahren der Instanz lange dauert.

    • Wenn Sie stattdessen kein Ergebnis erhalten, wurde wahrscheinlich nur das Zeitlimit für die Funktion überschritten. Fahren Sie einfach mit dem nächsten Schritt fort, um zu sehen, ob lediglich das Herunterfahren der Instanz lange dauert.

  2. Prüfen Sie, ob die Instanz den Status TERMINATED hat. Es kann bis zu 30 Sekunden dauern, bis das Herunterfahren abgeschlossen ist.

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

Instanz starten

  1. Rufen Sie die Funktion auf, um die Instanz zu starten.

    gcloud functions call startInstancePubSub \
        --data '{"data":"eyJ6b25lIjoidXMtd2VzdDEtYiIsICJsYWJlbCI6ImVudj1kZXYifQo="}'
    
    • Auch dieser ist einfach der base64-codierte String für {"zone":"us-west1-b", "label":"env=dev"}.

    Wenn die Funktion beendet ist, sollten Sie Folgendes sehen:

    result: Successfully started instance dev-instance
    
  2. Prüfen Sie, ob die Instanz den Status RUNNING hat. Es kann bis zu 30 Sekunden dauern, bis der Startvorgang abgeschlossen ist.

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

Cloud Scheduler-Jobs für den Aufruf von Pub/Sub einrichten

Jobs erstellen

Console

Erstellen Sie den Startjob.

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.
    Zur Seite "Cloud Scheduler".
  2. Klicken Sie auf Job erstellen.
  3. Behalten Sie die Standardregion bei.
  4. Legen Sie als Name startup-dev-instances fest.
  5. Geben Sie als Häufigkeit 0 9 * * 1-5 ein.
    • Diese wird Mo-Fr um 9:00 Uhr ausgeführt.
  6. Wählen Sie für die Zeitzone das gewünschte Land und die gewünschte Zeitzone aus. In diesem Beispiel werden United States und Los Angeles verwendet.
  7. Klicken Sie auf Weiter.
  8. Wählen Sie für Zieltyp die Option Pub/Sub aus.
  9. Wählen Sie im Drop-down-Menü für Themen start-instance-event aus.
  10. Geben Sie unter Message (Nachricht) Folgendes ein:
    {"zone":"us-west1-b","label":"env=dev"}
    
  11. Klicken Sie auf Erstellen.

Erstellen Sie den Stoppjob.

  1. Sie sollten sich in der Google Cloud Console auf der Seite Cloud Scheduler befinden.
  2. Klicken Sie auf Job erstellen.
  3. Übernehmen Sie die Standardregion und klicken Sie unten auf der Seite auf Weiter.
  4. Legen Sie als Name shutdown-dev-instances fest.
  5. Geben Sie als Häufigkeit 0 17 * * 1-5 ein.
    • Diese wird Mo-Fr um 17:00 Uhr ausgeführt.
  6. Wählen Sie für die Zeitzone das gewünschte Land und die gewünschte Zeitzone aus. In diesem Beispiel werden United States und Los Angeles verwendet.
  7. Klicken Sie auf Weiter.
  8. Wählen Sie für Zieltyp die Option Pub/Sub aus.
  9. Wählen Sie im Drop-down-Menü für Themen stop-instance-event aus.
  10. Geben Sie unter Message (Nachricht) Folgendes ein:
    {"zone":"us-west1-b","label":"env=dev"}
    
  11. Klicken Sie auf Erstellen.

gcloud

Erstellen Sie den Startjob.

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

Erstellen Sie den Stoppjob.

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

(Optional) Überprüfen Sie, ob die Jobs ordnungsgemäß funktionieren.

Console

Instanz beenden

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.
    Zur Seite "Cloud Scheduler".
  2. Klicken Sie für den Job mit dem Namen shutdown-dev-instances auf Jetzt ausführen ganz rechts auf der Seite.
  3. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
    Zur Seite "VM-Instanzen".
  4. Prüfen Sie, ob die Instanz mit dem Namen dev-instanceneben dem Namen ein graues Quadrat aufweist, um anzuzeigen, dass sie gestoppt wurde. Es kann bis zu 30 Sekunden dauern, bis das Herunterfahren beendet ist.

Instanz starten

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.
    Zur Seite "Cloud Scheduler".
  2. Klicken Sie für den Job mit dem Namen startup-dev-instances auf Jetzt ausführen ganz rechts auf der Seite.
  3. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
    Zur Seite "VM-Instanzen".
  4. Prüfen Sie, ob die Instanz mit dem Namen dev-instance neben ihrem Namen ein grünes Häkchen hat, das angibt, dass sie ausgeführt wird. Es kann bis zu 30 Sekunden dauern, bis der Startvorgang abgeschlossen ist.

gcloud

Stoppen Sie die Instanz:

  1. Führen Sie den Scheduler-Job aus, um die Instanz zu stoppen.

    gcloud beta scheduler jobs run shutdown-dev-instances
    
  2. Prüfen Sie, ob die Instanz den Status TERMINATED hat. Es kann bis zu 30 Sekunden dauern, bis es vollständig heruntergefahren ist.

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

Instanz starten

  1. Führen Sie den Scheduler-Job aus, um die Instanz zu starten.

    gcloud beta scheduler jobs run startup-dev-instances
    
  2. Prüfen Sie, ob die Instanz den Status RUNNING hat. Es kann bis zu 30 Sekunden dauern, bis der Startvorgang abgeschlossen ist.

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

Bereinigen

Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Cloud Scheduler-Jobs löschen

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.

    Zur Seite "Cloud Scheduler"

  2. Klicken Sie die Kästchen neben Ihren Jobs an.

  3. Klicken Sie oben auf der Seite auf Löschen und bestätigen Sie den Löschvorgang.

Pub/Sub-Themen löschen

  1. Rufen Sie in der Google Cloud Console die Seite Pub/Sub auf.

    Zur Seite "Pub/Sub"

  2. Klicken Sie die Kästchen neben Ihren Themen an.

  3. Klicken Sie oben auf der Seite auf Löschen und bestätigen Sie den Löschvorgang.

Über Cloud Functions bereitgestellte Funktionen löschen

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Functions auf.

    Zur Seite "Cloud Functions"

  2. Klicken Sie die Kästchen neben Ihren Funktionen an.

  3. Klicken Sie oben auf der Seite auf Löschen und bestätigen Sie den Löschvorgang.

Compute Engine-Instanz löschen

So löschen Sie eine Compute Engine-Instanz:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie auf das Kästchen für die Die Instanz, die Sie löschen möchten.
  3. Klicken Sie zum Löschen der Instanz auf Weitere Aktionen, dann auf Löschen, und folgen Sie dann der Anleitung.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.

So löschen Sie das Projekt:

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte

  • Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center