Schnellstart-Lösung: E-Commerce-Plattform mit serverlosem Computing

Last reviewed 2023-08-24 UTC

In diesem Leitfaden erfahren Sie, wie Sie die Lösung eCommerce Platform mit serverlosem Computing verstehen, bereitstellen und verwenden. Diese Lösung zeigt, wie Sie für eine E-Commerce-Anwendung mit einer öffentlich sichtbaren Onlineshop-Website erstellen und ausführen. Sie erfahren, wie Sie eine Anwendung erstellen, die auf Nutzungsspitzen skaliert (z. B. während Spitzenereignissen wie einem Saisonverkauf), und Anfragen basierend auf dem Standort des Besuchers verwalten kann. Mit diesem Design kann der Onlinedienst einen konsistent verteilten Service für geografisch verteilte Kunden bereitstellen.

Diese Lösung ist ein guter Ausgangspunkt, wenn Sie lernen möchten, wie Sie skalierbare E-Commerce-Webanwendungen mit serverlosen Funktionen bereitstellen. Wenn Sie eine genauere operative Kontrolle wünschen, sehen Sie sich die E-Commerce-Webanwendung an, die auf Kubernetes bereitgestellt wird.

In diesem Dokument wird davon ausgegangen, dass Sie mit grundlegenden Cloud-Konzepten vertraut sind, aber nicht unbedingt mit Google Cloud. Erfahrung mit Terraform ist hilfreich.

.

Lernziele

Dieser Lösungsleitfaden unterstützt Sie bei Folgendem:

  • Systemarchitektur für eine E-Commerce-Website entwerfen
  • E-Commerce-Website im Hinblick auf Leistung, Skalierbarkeit und Reaktionsfähigkeit optimieren
  • Lasteinschränkungen überwachen und erwarten
  • Verwenden Sie Tracing und Error Reporting, um Probleme zu verstehen und zu verwalten.

Produkte

Die Lösung verwendet die folgenden Google Cloud-Produkte:

  • Cloud Run: Ein vollständig verwalteter Dienst, mit dem Sie serverlose containerisierte Anwendungen erstellen und bereitstellen können. Google Cloud übernimmt die Skalierung und andere Infrastrukturaufgaben, damit Sie sich auf die Geschäftslogik Ihres Codes konzentrieren können.
  • Cloud SQL: Eine cloudbasierte PostgreSQL-Datenbank, die vollständig in der Google Cloud-Infrastruktur verwaltet wird.
  • Secret Manager: Ein Dienst, mit dem Sie Secrets als Blobs oder Textstrings speichern, verwalten und darauf zugreifen können. Mit Secret Manager können Sie Datenbankpasswörter, API-Schlüssel oder TLS-Zertifikate speichern, die von einer Anwendung zur Laufzeit benötigt werden.
  • Cloud Storage: Ein für Unternehmen geeigneter Dienst, der einen kostengünstigen, unbegrenzten Objektspeicher für verschiedene Datentypen bietet. Daten können von innerhalb und außerhalb von Google Cloud aufgerufen und georedundant repliziert werden.
  • Firebase Hosting: Ein vollständig verwalteter Hostingdienst für die Bereitstellung und Bereitstellung Ihrer Webanwendungen und statischen Inhalte.
  • Cloud Logging: Ein Dienst, mit dem Sie Logging-Daten und -Ereignisse von Google Cloud und anderen Clouds speichern, durchsuchen, analysieren, überwachen und melden können.
  • Cloud Trace: Ein verteiltes Tracing-System für Google Cloud, mit dem Sie nachvollziehen können, wie lange Ihre Anwendung für die Verarbeitung eingehender Anfragen von Nutzern oder anderen Anwendungen benötigt und wie lange es dauert, bis Vorgänge abgeschlossen sind, wie beispielsweise RPC-Aufrufe, die bei der Verarbeitung der Anfragen ausgeführt werden.
  • Error Reporting: Dieser Dienst fasst die in Ihren laufenden Cloud-Diensten generierten Fehler in einer Zusammenfassung zusammen. Error Reporting gruppiert Fehler, von denen angenommen wird, dass sie dieselbe Ursache haben.

Architektur

Im folgenden Diagramm wird die Architektur der Lösung dargestellt:

Mit Cloud Run bereitgestellte E-Commerce-Webanwendung

Anfrageablauf

Im Folgenden wird der Ablauf der Anfrageverarbeitung der E-Commerce-Plattform dargestellt. Die Schritte im Ablauf sind wie im vorherigen Architekturdiagramm dargestellt nummeriert.

  1. Firebase Hosting-Client-Frontend Das Frontend verwendet Lit und Webkomponenten für das clientseitige Rendering von API-Daten.
  2. Der Webclient ruft ein API-Backend auf, das als Cloud Run-Dienst ausgeführt wird. Der Cloud Run API-Server ist mithilfe des Django REST Framework in Django geschrieben.
  3. Die Konfiguration und andere Secrets für die Python-Anwendung werden in Secret Manager gespeichert.
  4. Statische Assets für die Anwendung werden in Cloud Storage gespeichert.
  5. Eine Cloud SQL-Datenbank mit PostgreSQL wird als relationales Datenbank-Backend für die Python-Anwendung verwendet.
  6. In Cloud Logging, Cloud Trace und Error Reporting werden Logs, OpenTelemetry-Traces und Fehlerberichte gespeichert, die von anderen Cloud-Produkten und dem Cloud Run API-Server gesendet werden. Diese Daten ermöglichen das Monitoring des richtigen Anwendungsverhaltens und die Fehlerbehebung bei unerwartetem Verhalten.

Kosten

Eine Schätzung der Kosten der Google Cloud-Ressourcen, die von der E-Commerce-Plattform mit serverlosem Computing verwendet werden, finden Sie im vorab berechneten Kosten-Preisrechner im Google Cloud-Preisrechner.

Verwenden Sie die vorab berechnete Schätzung als Ausgangspunkt, um die Kosten Ihrer Bereitstellung zu berechnen. Sie können die Schätzung ändern, um alle Konfigurationsänderungen widerzuspiegeln, die Sie für die in der Lösung verwendeten Ressourcen vornehmen möchten.

Die vorab berechnete Schätzung basiert auf Annahmen für bestimmte Faktoren, darunter:

  • Die Google Cloud-Standorte, an denen die Ressourcen bereitgestellt werden.
  • Die Zeitdauer der Verwendung der Ressourcen.

Hinweise

Zum Bereitstellen dieser Lösung benötigen Sie zuerst ein Google Cloud-Projekt und einige IAM-Berechtigungen.

Google Cloud-Projekt erstellen oder auswählen

Beim Bereitstellen der Lösung wählen Sie das Google Cloud-Projekt aus, in dem die Ressourcen bereitgestellt werden. Sie können entweder ein neues Projekt erstellen oder ein vorhandenes Projekt für die Bereitstellung verwenden.

Wenn Sie ein neues Projekt erstellen möchten, sollten Sie dies tun, bevor Sie mit der Bereitstellung beginnen. Durch die Verwendung eines neuen Projekts können Konflikte mit zuvor bereitgestellten Ressourcen vermieden werden, beispielsweise Ressourcen, die für Produktionsarbeitslasten verwendet werden.

So erstellen Sie ein Projekt:

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Click Create project.

  3. Name your project. Make a note of your generated project ID.

  4. Edit the other fields as needed.

  5. Click Create.

Erforderliche IAM-Berechtigungen abrufen

Zum Starten des Bereitstellungsprozesses benötigen Sie die in der folgenden Tabelle aufgeführten IAM-Berechtigungen (Identity and Access Management).

Wenn Sie ein neues Projekt für diese Lösung erstellt haben, haben Sie die einfache Rolle roles/owner in diesem Projekt und verfügen über alle erforderlichen Berechtigungen. Wenn Sie die Rolle roles/owner nicht haben, bitten Sie Ihren Administrator, Ihnen die Berechtigungen (oder die Rollen mit diesen Berechtigungen) zu gewähren.

Erforderliche IAM-Berechtigung Vordefinierte Rolle mit den erforderlichen Berechtigungen

serviceusage.services.enable

Service Usage-Administrator
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

Dienstkontoadministrator
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

Projekt-IAM-Administrator
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
Cloud Infrastructure Manager Admin
(roles/config.admin)

Temporäre Dienstkontoberechtigungen

Wenn Sie den Bereitstellungsprozess über die Console starten, erstellt Google ein Dienstkonto, um die Lösung für Sie bereitzustellen und die Bereitstellung später zu löschen, wenn Sie dies möchten. Diesem Dienstkonto werden bestimmte IAM-Berechtigungen vorübergehend zugewiesen. Das heißt, die Berechtigungen werden automatisch widerrufen, nachdem die Bereitstellungs- und Löschvorgänge für die Lösung abgeschlossen sind. Google empfiehlt, dass Sie nach dem Löschen der Bereitstellung das Dienstkonto löschen, wie weiter unten in dieser Anleitung beschrieben.

Rollen aufrufen, die dem Dienstkonto zugewiesen sind

Diese Rollen sind hier aufgeführt, falls ein Administrator Ihres Google Cloud-Projekts oder Ihrer Organisation diese Informationen benötigt.

Lösung bereitstellen

Damit Sie diese Lösung mit minimalem Aufwand bereitstellen können, wird in GitHub eine Terraform-Konfiguration bereitgestellt. Die Terraform-Konfiguration definiert alle Google Cloud-Ressourcen, die für die Lösung erforderlich sind.

Sie können die Lösung mit einer der folgenden Methoden bereitstellen:

  • Über die Console: Verwenden Sie diese Methode, wenn Sie die Lösung mit der Standardkonfiguration testen und sehen möchten, wie sie funktioniert. Cloud Build stellt alle für die Lösung erforderlichen Ressourcen bereit. Wenn Sie die bereitgestellte Lösung nicht mehr benötigen, können Sie sie aus der Console löschen. Alle Ressourcen, die Sie nach der Bereitstellung der Lösung erstellen, müssen möglicherweise separat gelöscht werden.

    Folgen Sie der Anleitung unter Über die Console bereitstellen, um diese Bereitstellungsmethode zu verwenden.

  • Terraform-Befehlszeile verwenden: Verwenden Sie diese Methode, wenn Sie die Lösung anpassen oder die Bereitstellung und Verwaltung der Ressourcen mithilfe von Infrastruktur als Code (IaC) automatisieren möchten. Laden Sie die Terraform-Konfiguration von GitHub herunter, passen Sie optional den Code nach Bedarf an und stellen Sie die Lösung mit der Terraform-Befehlszeile bereit. Nachdem Sie die Lösung bereitgestellt haben, können Sie sie mit Terraform verwalten.

    Folgen Sie der Anleitung unter Mit der Terraform CLI bereitstellen, um diese Bereitstellungsmethode zu verwenden.

Über die Console bereitstellen

Führen Sie die folgenden Schritte aus, um die vorkonfigurierte Lösung bereitzustellen.

  1. Rufen Sie im Google Cloud-Jump-Start-Lösungskatalog die Lösung E-Commerce-Plattform mit serverlosem Computing auf.

    Zur Lösung "E-Commerce-Plattform mit serverlosem Computing"

  2. Prüfen Sie die auf der Seite bereitgestellten Informationen, z. B. die geschätzten Kosten der Lösung und die geschätzte Bereitstellungszeit.

  3. Wenn Sie die Lösung bereitstellen möchten, klicken Sie auf Bereitstellen.

    Es wird ein Bereich mit einer Schritt-für-Schritt-Konfiguration angezeigt.

  4. Führen Sie die Schritte im Konfigurationsbereich aus.

    Notieren Sie sich den Namen, den Sie für die Bereitstellung eingegeben haben. Sie benötigen diesen Namen später, wenn Sie die Bereitstellung löschen.

    Wenn Sie auf Bereitstellen klicken, wird die Seite Lösungsbereitstellungen angezeigt. Im Feld Status auf dieser Seite wird Wird bereitgestellt angezeigt.

  5. Warten Sie, bis die Lösung bereitgestellt wurde.

    Wenn die Bereitstellung fehlschlägt, wird im Feld Status der Eintrag Fehlgeschlagen angezeigt. Sie können das Cloud Build-Log verwenden, um die Fehler zu diagnostizieren. Weitere Informationen finden Sie unter Fehler bei der Bereitstellung über die Console.

    Wenn die Bereitstellung abgeschlossen ist, ändert sich das Feld Status in Bereitgestellt.

  6. Folgen Sie der Anleitung unter Avocano-Bereitstellung entdecken, um die bereitgestellte E-Commerce-Webanwendung aufzurufen und zu verwenden.

  7. Nehmen Sie an einer interaktiven Tour teil, um die bereitgestellten Google Cloud-Ressourcen und ihre Konfiguration aufzurufen.

    Tour starten

Wenn Sie die Lösung nicht mehr benötigen, können Sie die Bereitstellung löschen, um weitere Kosten für die Google Cloud-Ressourcen zu vermeiden. Weitere Informationen finden Sie unter Bereitstellung löschen.

Mit der Terraform-Befehlszeile bereitstellen

In diesem Abschnitt wird beschrieben, wie Sie die Lösung anpassen oder die Bereitstellung und Verwaltung der Lösung mit der Terraform CLI automatisieren können. Lösungen, die Sie mit der Terraform-Befehlszeile bereitstellen, werden auf der Seite Lösungsbereitstellungen in der Google Cloud Console nicht angezeigt.

Terraform-Client einrichten

Sie können Terraform entweder in Cloud Shell oder auf Ihrem lokalen Host ausführen. In dieser Anleitung wird beschrieben, wie Sie Terraform in Cloud Shell ausführen. Dort ist Terraform vorinstalliert und für die Authentifizierung bei Google Cloud konfiguriert.

Der Terraform-Code für diese Lösung ist in einem GitHub-Repository verfügbar.

  1. Klonen Sie das GitHub-Repository in Cloud Shell.

    In Cloud Shell öffnen

    Es wird eine Eingabeaufforderung angezeigt, um das Herunterladen des GitHub-Repositorys in Cloud Shell zu bestätigen.

  2. Klicken Sie auf Bestätigen.

    Cloud Shell wird in einem separaten Browser-Tab gestartet und der Terraform-Code wird in das Verzeichnis $HOME/cloudshell_open Ihrer Cloud Shell-Umgebung heruntergeladen.

  3. Prüfen Sie in Cloud Shell, ob das aktuelle Arbeitsverzeichnis $HOME/cloudshell_open/terraform-dynamic-python-webapp/infra ist. Dies ist das Verzeichnis, das die Terraform-Konfigurationsdateien für die Lösung enthält. Wenn Sie in dieses Verzeichnis wechseln müssen, führen Sie den folgenden Befehl aus:

    cd $HOME/cloudshell_open/terraform-dynamic-python-webapp/infra
    
  4. Initialisieren Sie Terraform mit dem folgenden Befehl:

    terraform init
    

    Warten Sie, bis folgende Meldung angezeigt wird:

    Terraform has been successfully initialized!
    

Terraform-Variablen konfigurieren

Der heruntergeladene Terraform-Code enthält Variablen, mit denen Sie die Bereitstellung entsprechend Ihren Anforderungen anpassen können. Sie können beispielsweise das Google Cloud-Projekt und die Region angeben, in der die Lösung bereitgestellt werden soll.

  1. Achten Sie darauf, dass das aktuelle Arbeitsverzeichnis $HOME/cloudshell_open/terraform-dynamic-python-webapp/infra ist. Ist dies nicht der Fall, wechseln Sie zu diesem Verzeichnis.

  2. Erstellen Sie im selben Verzeichnis eine Textdatei mit dem Namen terraform.tfvars.

  3. Kopieren Sie in der Datei terraform.tfvars das folgende Code-Snippet und legen Sie Werte für die erforderlichen Variablen fest.

    • Folgen Sie den Anleitungen, die im Code-Snippet als Kommentare angegeben sind.
    • Dieses Code-Snippet enthält nur die Variablen, für die Sie Werte festlegen müssen. Die Terraform-Konfiguration enthält andere Variablen mit Standardwerten. Informationen zu allen Variablen und Standardwerten finden Sie in der Datei variables.tf im Verzeichnis $HOME/cloudshell_open/terraform-dynamic-python-webapp/infra.
    • Achten Sie darauf, dass jeder in der Datei terraform.tfvars festgelegte Wert mit dem Typ der Variable übereinstimmt, wie in der Datei variables.tf angegeben. Beispiel: Wenn der Typ, der für eine Variable in der Datei variables.tf definiert wurde, bool ist, müssen Sie true oder false als Wert dieser Variable in der Datei terraform.tfvars angeben.

      # This is an example of the terraform.tfvars file.
      # The values in this file must match the variable types declared in variables.tf.
      # The values in this file override any defaults in variables.tf.
      
      # ID of the project in which you want to deploy the solution
      project_id = "PROJECT_ID"
      
      # Google Cloud region where you want to deploy the solution
      # Example: us-central1
      region = "REGION"
      
      # Google Cloud zone where you want to deploy the solution
      # Example: us-central1-a
      zone = "ZONE"
      
      # Container Registry that hosts the client image
      client_image_host = "hsa-public/serverless-ecommerce"
      
      # Container Registry that hosts the server image
      server_image_host = "hsa-public/serverless-ecommerce"
      

      Weitere Informationen zu den Werten, die Sie den erforderlichen Variablen zuweisen können, finden Sie hier:

Terraform-Konfiguration validieren und prüfen

  1. Prüfen Sie, ob das aktuelle Arbeitsverzeichnis $HOME/cloudshell_open/terraform-dynamic-python-webapp/infra ist. Ist dies nicht der Fall, wechseln Sie zu diesem Verzeichnis.

  2. Prüfen Sie, ob die Terraform-Konfiguration Fehler enthält:

    terraform validate
    

    Wenn der Befehl einen Fehler zurückgibt, nehmen Sie die erforderlichen Korrekturen in der Konfiguration vor und führen Sie den Befehl terraform validate noch einmal aus. Wiederholen Sie diesen Schritt, bis der Befehl die folgende Meldung zurückgibt:

    Success! The configuration is valid.
    
  3. Sehen Sie sich die Ressourcen an, die in der Konfiguration definiert sind:

    terraform plan
    
  4. Wenn Sie die Datei terraform.tfvars nicht wie zuvor beschrieben erstellt haben, werden Sie von Terraform zur Eingabe von Werten für die Variablen aufgefordert, die keine Standardwerte haben. Geben Sie die erforderlichen Werte ein.

    Die Ausgabe des Befehls terraform plan ist eine Liste der Ressourcen, die Terraform beim Anwenden der Konfiguration bereitstellt.

    Wenn Sie Änderungen vornehmen möchten, bearbeiten Sie die Konfiguration und führen Sie dann die Befehle terraform validate und terraform plan noch einmal aus.

Ressourcen bereitstellen

Wenn keine weiteren Änderungen an der Terraform-Konfiguration erforderlich sind, stellen Sie die Ressourcen bereit.

  1. Prüfen Sie, ob das aktuelle Arbeitsverzeichnis $HOME/cloudshell_open/terraform-dynamic-python-webapp/infra ist. Ist dies nicht der Fall, wechseln Sie zu diesem Verzeichnis.

  2. Wenden Sie die Terraform-Konfiguration an:

    terraform apply
    
  3. Wenn Sie die Datei terraform.tfvars nicht wie zuvor beschrieben erstellt haben, werden Sie von Terraform zur Eingabe von Werten für die Variablen aufgefordert, die keine Standardwerte haben. Geben Sie die erforderlichen Werte ein.

    Terraform zeigt eine Liste der Ressourcen an, die erstellt werden.

  4. Wenn Sie aufgefordert werden, die Aktionen auszuführen, geben Sie yes ein.

    In Terraform werden Nachrichten angezeigt, die den Fortschritt der Bereitstellung anzeigen.

    Wenn die Bereitstellung nicht abgeschlossen werden kann, zeigt Terraform die Fehler an, die den Fehler verursacht haben. Prüfen Sie die Fehlermeldungen und aktualisieren Sie die Konfiguration, um die Fehler zu beheben. Führen Sie den Befehl terraform apply dann noch einmal aus. Hilfe zur Fehlerbehebung bei Terraform-Fehlern finden Sie unter Fehler bei der Bereitstellung der Lösung mit der Terraform-Befehlszeile.

    Nachdem alle Ressourcen erstellt wurden, zeigt Terraform die folgende Meldung an:

    Apply complete!
    
  5. Folgen Sie der Anleitung unter Avocano-Bereitstellung entdecken, um die bereitgestellte E-Commerce-Webanwendung aufzurufen und zu verwenden.

  6. Nehmen Sie an einer interaktiven Tour teil, um die bereitgestellten Google Cloud-Ressourcen und ihre Konfiguration aufzurufen.

    Tour starten

Wenn Sie die Lösung nicht mehr benötigen, können Sie die Bereitstellung löschen, um weitere Kosten für die Google Cloud-Ressourcen zu vermeiden. Weitere Informationen finden Sie unter Bereitstellung löschen.

Avocano-Deployment entdecken

Sie haben jetzt die Avocano-Website-Anwendung bereitgestellt. Sie können die Avocano-Website besuchen und sich dort ansehen, wie die Lösung in der Google Cloud Console funktioniert. Nach dem Bereitstellen der Anwendung kann es einige Minuten dauern, bis die Website unter der angegebenen Adresse angezeigt wird.

Was ist Avocano?

Diese Lösung verwendet eine Beispielanwendung mit dem Namen Avocano, um die Bereitstellung und Verwaltung einer Webanwendung mit vielen der Tools und Produkte zu demonstrieren, die für serverlose Anwendungen verwendet werden. Avocano ist eine Anwendung, die eine reale Implementierung einer E-Commerce-Webanwendung nachahmt.

Das Avocano-Frontend stellt eine gefälschte Außenansicht dar, auf der Sie Artikel in Ihren Einkaufswagen legen und einen Kassenvorgang abschließen können. Der Store zeigt jedoch, dass es gefälscht ist (Avoca--nein!). Sie können zwar keine Avocado kaufen, aber die Anwendung veranschaulicht die Inventarverwaltung, indem die Menge des verfügbaren Produkts um eins verringert wird.

Avocano-Landingpage

Frontend entdecken

So starten Sie das Frontend Ihrer Lösungsbereitstellung:

  1. Öffnen Sie die Firebase Console.
  2. Wählen Sie Ihr vorhandenes Projekt aus.
  3. Gehen Sie zum Bereich Build > Hosting.
  4. Wählen Sie die Domain aus, die auf web.app endet. Das Frontend Ihrer Beispielanwendung wird in einem neuen Browserfenster geöffnet.

Sie können jetzt mit der Avocano-Website interagieren, wie ihre Kunden dies sehen würden. Dazu gehören das Durchsuchen von Produkten, das Hinzufügen von Produkten zum Einkaufswagen und das Auschecken als Gast.

Autoscaling- und Gleichzeitigkeitskonfiguration ansehen

Cloud Run skaliert abhängig von dem Traffic automatisch Containerinstanzen von oben oder unten, um eine schnelle Startzeit für Ihre Anwendung zu gewährleisten.

Einstellungen für Autoscaling und Gleichzeitigkeit

Beachten Sie, dass sich die Einstellungen für Autoscaling und die Gleichzeitigkeit in Cloud Run auf die Leistung und die Kosten Ihrer Anwendung auswirken können:

  • Mindestanzahl von Instanzen: Sie können die Einstellung für die Mindestanzahl von Instanzen festlegen, um inaktive Instanzen für Ihren Dienst zu aktivieren. Wenn Sie die Einstellung für die Mindestanzahl von Instanzen in Erwartung eines höheren Traffics erhöhen, können Sie die Antwortzeit für die ersten N Nutzer minimieren. Wenn Ihr Dienst eine geringere Latenz erfordert, insbesondere bei der Skalierung von null aktiven Instanzen, können Sie eine Mindestanzahl von Containerinstanzen angeben, die einsatzbereit gehalten werden und zum Verarbeiten von Anfragen bereit sein sollen.

  • Maximale Anzahl von Instanzen: Wenn Sie die Einstellung für die maximale Anzahl von Instanzen in Cloud Run erhöhen, können Sie außergewöhnlich hohen Traffic bereitstellen, der erwartet wird. In einem solchen Szenario sollten Sie auch Ihr aktuelles Kontingent bewerten und eine Erhöhung anfordern. Durch die Reduzierung der Einstellung für die maximale Anzahl von Instanzen können Sie unerwartete Kosten oder eine höhere Auslastung der zugrunde liegenden Sicherungsinfrastruktur (z. B. Ihre Datenbankkapazität) vermeiden.

  • Gleichzeitigkeit: Die Gleichzeitigkeitseinstellung für Cloud Run gibt die maximale Anzahl von Anfragen an, die von einer bestimmten Containerinstanz gleichzeitig verarbeitet werden können. Durch die Optimierung des Arbeitsspeichers, der CPU und der Gleichzeitigkeit für Ihr Anwendungsverhalten wird sichergestellt, dass jede Containerinstanz die beste Auslastung hat. Außerdem wird die Notwendigkeit einer Skalierung auf neue Instanzen minimiert. Weitere Informationen finden Sie unter Gleichzeitigkeit optimieren.

Autoscaling- und Gleichzeitigkeitseinstellungen aufrufen

So rufen Sie die aktuellen Einstellungen für die minimale und maximale Anzahl von Instanzen sowie die Gleichzeitigkeitseinstellungen für Ihren Cloud Run-Dienst auf:

  1. Öffnen Sie Cloud Run.
  2. Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.
  3. Klicken Sie auf den Tab Überarbeitungen.
  4. Im Detailbereich rechts werden die aktuellen Einstellungen für die Mindestanzahl, die maximale Anzahl von Instanzen und die Gleichzeitigkeit auf dem Tab Container aufgelistet.

Weitere Informationen zum Anpassen dieser Einstellungen zur Optimierung der Anwendungsleistung finden Sie in den allgemeinen Tipps zur Entwicklung in der Cloud Run-Dokumentation.

Traffic-Logs ansehen

Mit den Logging-Tools in Cloud Run können Sie den Traffic zu Ihrer Anwendung überwachen und sich bei Problemen benachrichtigen lassen.

So rufen Sie Logs für Ihren Cloud Run-Dienst auf:

  1. Zu Cloud Run
  2. Klicken Sie in der angezeigten Liste auf den ausgewählten Dienst.
  3. Klicken Sie auf den Tab LOGS, um die Anfrage- und Containerlogs für alle Überarbeitungen des Dienstes abzurufen. Sie können nach Logschweregrad filtern.

Cloud Run erfasst automatisch an vielen Stellen Logs: alles, was in den Standardausgabestream oder Standardfehlerstream geschrieben wurde, alles in /var/log/ und weitere. Jedes manuelle Logging, das mit den Cloud Logging-Bibliotheken durchgeführt wird, wird ebenfalls erfasst. Sie können die Logs für diesen Dienst auch direkt in Cloud Logging aufrufen. Klicken Sie dazu auf Im Log-Explorer aufrufen.

Versuchen Sie in der Avocano-App, die folgenden Nutzeraktionen auszuführen, um die entsprechende Ausgabe auszulösen, die in den Logs angezeigt werden kann.

Nutzeraktion Logausgabe
Prüfen Sie, ob der Kauf des Einkaufswagens über Erfassen als Zahlungsart erfolgt und der Produktbetrag im Einkaufswagen die Inventaranzahl nicht überschreitet. Die Logausgabe zeigt ein Info-Log mit dem httpRequest-Status 200.
Erwerben Sie den Einkaufswagen mit Erfassen als Zahlungsmittel, aber der Produktbetrag im Einkaufswagen überschreitet die Inventaranzahl. In der Logausgabe wird das Log Warnung mit dem Status httpRequest 400 angezeigt.
Kaufen Sie den Einkaufswagen mit Gutschrift als Zahlungsart. Die Logausgabe zeigt ein Fehler-Log mit dem httpRequest-Status 501

Sie können den Code ansehen, der den Fehler auslöst, der zur HTTP-Antwort 400/501 in der Datei serializers.py führt. Cloud Run notiert die Antwort und generiert einen entsprechenden Anfragelogeintrag.

Sie können logbasierte Benachrichtigungen verwenden, die Sie benachrichtigen, wenn eine bestimmte Nachricht in den betreffenden Logs angezeigt wird.

Trace-Instrumentierung und erfasste Traces ansehen

Diese Lösung verwendet die automatische Instrumentierung von Python für Telemetrie, um Telemetriedaten für die Avocano-Anwendung zu erfassen.

So wird Tracing implementiert

Die Lösung implementiert die folgenden Code- und Konfigurationseinstellungen, um Traces mithilfe der automatischen Instrumentierung zu generieren:

  1. Fügen Sie Abhängigkeiten für Cloud Trace in die Datei requirements.txt ein, einschließlich der folgenden:
    • opentelemetry-distro: installiert die OpenTelemetry API, das SDK und die Befehlszeilentools.
    • opentelemetry-instrumentation: unterstützt die automatische Python-Instrumentierung.
    • opentelemetry-exporter-gcp-trace: bietet Unterstützung für den Export von Traces nach Cloud Trace.
    • opentelemetry-resource-detector: bietet Unterstützung für die Erkennung von Google Cloud-Ressourcen.
    • opentelemetry-instrumentation-django: lässt Tracing-Anfragen für die Django-Anwendung zu.
  2. Legen Sie die IAM-Bindung in der Datei iam.tf fest, damit der Server in Cloud Trace schreiben kann.
  3. Konfigurieren Sie die Umgebungsvariable OTEL_TRACES_EXPORTER in der Datei services.tf für die Verwendung des Exporters für Cloud Trace.
  4. Konfigurieren Sie in server/Procfile den Server so, dass er den Befehl opentelemetry-instrument in der Avocano-Anwendung ausführt. Dieser Befehl erkennt Pakete in Avocano und wendet die Tracing-Instrumentierung nach Möglichkeit auf diese an.

Weitere Informationen zum Erfassen von Cloud Trace-Daten für Python finden Sie unter Python und OpenTelemetry.

Latenzdaten ansehen

So rufen Sie die Latenzdaten für Anfragen auf:

  1. Zu Cloud Trace
  2. Klicken Sie im Bereich Trace auswählen der Seite Trace-Liste auf den blauen Punkt, der einen erfassten Trace darstellt. In der Spalte Latenz wird die Latenz für die erfassten Traces angezeigt.

Sie können Trace-Daten auch mithilfe der folgenden Visualisierungen auf der Seite Trace-Liste aufrufen:

  • Wasserfalldiagramm: Stellt ein vollständiges Request über die Anwendung dar. Jeder Schritt auf der Zeitachse ist ein Span, auf den Sie klicken können, um Details aufzurufen. Cloud Run erstellt automatisch Spans für interne Vorgänge wie die Anfrageverarbeitung und das Load-Balancing. Diese Spans werden im selben Wasserfalldiagramm wie die von Avocano erzeugten Spans angezeigt, sodass Sie die gesamte Lebensdauer der Anfrage sehen können.
  • Span-Details: Zeigt alle Labels oder Annotationen an, die Sie bei der Instrumentierung für Trace zum Code der Anwendung hinzugefügt haben.

Informationen zum Hinzufügen benutzerdefinierter Traces finden Sie in der OpenTelemetry-Dokumentation unter Manuelle Instrumentierung.

Designempfehlungen

Dieser Abschnitt enthält Empfehlungen zur Verwendung der E-Commerce-Plattform mit serverlosem Computing, um eine Architektur zu entwickeln, die Ihren Anforderungen an Sicherheit, Zuverlässigkeit, Kosten und Leistung entspricht.

Klicken Sie auf den entsprechenden Tab, um die Designempfehlungen für jeden Bereich aufzurufen.

Sicherheit erhöhen

Designfokus Empfehlungen
Datenverschlüsselung

Standardmäßig verschlüsselt Cloud Run Daten mit einem Google-eigenen und von Google verwalteten Schlüssel. Zum Schutz Ihrer Container mit einem von Ihnen kontrollierten Schlüssel können Sie vom Kunden verwaltete Verschlüsselungsschlüssel verwenden. Weitere Informationen finden Sie unter vom Kunden verwaltete Verschlüsselungsschlüssel verwenden.

Sicherheit der Softwarelieferkette Damit nur autorisierte Container-Images in den Cloud Run-Diensten bereitgestellt werden, können Sie die Binärautorisierung verwenden.

Zuverlässigkeit verbessern

Designfokus Empfehlungen
Anwendungsskalierung Die Cloud Run-Dienste in der Lösung sind so konfiguriert, dass die Containerinstanzen je nach Anfragelast horizontal skaliert werden. Prüfen und passen Sie die Autoscaling-Parameter entsprechend Ihren Anforderungen an. Weitere Informationen finden Sie unter Autoscaling von Containerinstanzen.
Anfragen verarbeiten Sie können die Sitzungsaffinität verwenden, um die Reaktionsfähigkeit von Cloud Run-Diensten zu verbessern, die clientspezifische Status auf Containerinstanzen speichern. Anfragen von demselben Client werden auf Best-Effort-Basis an dieselbe Containerinstanz weitergeleitet. Weitere Informationen finden Sie unter Sitzungsaffinität festlegen (Dienste).
Datenhaltbarkeit Sie können die automatischen Sicherungen der Cloud SQL-Datenbank verwenden, um sich vor Datenverlust zu schützen. Weitere Informationen finden Sie unter Informationen zu Cloud SQL-Sicherungen.
Hochverfügbarkeit der Datenbank (HA)

Die Cloud SQL-Datenbank in der Lösung wird in einer einzigen Zone bereitgestellt. Für HA können Sie eine Mehrzonenkonfiguration verwenden. Weitere Informationen finden Sie unter Hochverfügbarkeit.

Wenn die Hochverfügbarkeit von Datenbanken eine wichtige Anforderung darstellt, ist AlloyDB for PostgreSQL ein alternativer Google Cloud-Dienst, den Sie in Betracht ziehen können.

Datenbankzuverlässigkeit

Die Cloud SQL-Instanz in dieser Lösung verwendet den Maschinentyp db-custom-2-4096, der zwei CPUs mit 4 GB Arbeitsspeicher verwendet. Dieser Maschinentyp wurde entwickelt, um Ressourcen für eine kostengünstige Datenbank bereitzustellen, die nur für Test- und Entwicklungsumgebungen geeignet sind. Wenn Sie eine produktionstaugliche Zuverlässigkeit benötigen, können Sie einen Maschinentyp verwenden, der mehr CPU und Arbeitsspeicher bietet.

Eine Cloud SQL-Instanz, die den Maschinentyp db-g1-small verwendet, ist nicht im Cloud SQL-Service Level Agreement (SLA) enthalten. Weitere Informationen zu Konfigurationen, die vom SLA ausgeschlossen sind, finden Sie unter Betriebsrichtlinien.

Kontingente und Limits

Der Umfang der Cloud Run-Ressourcen ist begrenzt. Wenn Sie einen Anstieg des Traffics erwarten, z. B. aufgrund eines saisonabhängigen oder Verkaufsereignisses, sollten Sie eine Kontingenterhöhung anfordern. Weitere Informationen finden Sie unter Kontingent erhöhen.

Einige Kontingentanforderungen erfordern eine manuelle Genehmigung. Planen Sie daher im Voraus. Sie können auch Benachrichtigungen über Ihren Fortschritt zum Erreichen Ihres Kontingents festlegen.

Kosten optimieren

Designfokus Empfehlungen
Ressourceneffizienz

Cloud Run bestimmt die Anzahl der Anfragen, die an eine Container-Instanz gesendet werden sollen, basierend auf der CPU- und Arbeitsspeichernutzung. Wenn Sie die maximale Gleichzeitigkeitseinstellung erhöhen, können Sie die Anzahl der Containerinstanzen reduzieren, die von Cloud Run erstellt werden müssen, und somit die Kosten senken. Weitere Informationen finden Sie unter Maximale Anzahl gleichzeitiger Anfragen pro Instanz (Dienste).

Die Cloud Run-Dienste in dieser Lösung sind so konfiguriert, dass CPUs nur während der Anfrageverarbeitung zugewiesen werden. Wenn ein Cloud Run-Dienst die Verarbeitung einer Anfrage beendet, wird der Zugriff der Containerinstanz auf CPUs deaktiviert. Informationen zu den Kosten und Leistungsauswirkungen dieser Konfiguration finden Sie unter CPU-Zuweisung (Dienste).

Performance optimieren

Designfokus Empfehlungen
App-Startzeit Um die Leistungsauswirkungen von Kaltstarts zu reduzieren, können Sie die Mindestanzahl von Cloud Run-Containerinstanzen auf einen Wert ungleich null konfigurieren. Weitere Informationen finden Sie unter Allgemeine Entwicklungstipps für Cloud Run.
Nebenläufigkeit optimieren Diese Lösung ist darauf ausgelegt, einen einzelnen Containerdurchsatz zu maximieren. Cloud Run passt die Nebenläufigkeit für die Verarbeitung mehrerer Anfragen automatisch an. Sie sollten jedoch die maximale Gleichzeitigkeit anpassen, wenn Ihr Container nicht viele gleichzeitige Anfragen verarbeiten kann oder wenn Ihr Container eine größere Anzahl von Anfragen verarbeiten kann. Weitere Informationen finden Sie unter Gleichzeitigkeit optimieren.
Datenbankleistung

Bei leistungsabhängigen Anwendungen können Sie die Leistung von Cloud SQL verbessern. Verwenden Sie dazu einen größeren Maschinentyp und erhöhen Sie die Speicherkapazität.

Wenn die Datenbankleistung eine wichtige Anforderung ist, ist AlloyDB for PostgreSQL ein alternativer Google Cloud-Dienst, den Sie in Betracht ziehen können.

Hinweis:

  • Bevor Sie Designänderungen vornehmen, prüfen Sie die Kostenauswirkungen und berücksichtigen Sie mögliche Kompromisse mit anderen Features. Sie können die Kostenauswirkungen von Designänderungen mit dem Google Cloud-Preisrechner bewerten.
  • Wenn Sie Designänderungen in der Lösung implementieren möchten, benötigen Sie Fachwissen über die Terraform-Codierung und erweiterte Kenntnisse über die in der Lösung verwendeten Google Cloud-Dienste.
  • Wenn Sie die von Google bereitgestellte Terraform-Konfiguration ändern und dann Fehler auftreten, erstellen Sie Probleme in GitHub. GitHub-Probleme werden auf Best-Effort-Basis geprüft und sind nicht für allgemeine Fragen zur Nutzung vorgesehen.
  • Informationen zum Entwerfen und Einrichten von produktionstauglichen Umgebungen in Google Cloud finden Sie unter Design der Landing-Zone in Google Cloud und in der Checkliste für die Einrichtung von Google Cloud.

Lösungsbereitstellung löschen

Löschen Sie die Bereitstellung, wenn Sie die Lösungsbereitstellung nicht mehr benötigen, um eine weitere Abrechnung der von Ihnen erstellten Ressourcen zu vermeiden.

Über die Console löschen

Verwenden Sie dieses Verfahren, wenn Sie die Lösung über die Console bereitgestellt haben.

  1. Rufen Sie in der Google Cloud Console die Seite Lösungsbereitstellungen auf.

    Zu Lösungsbereitstellungen

  2. Wählen Sie das Projekt aus, das die Bereitstellung enthält, die Sie löschen möchten.

  3. Suchen Sie die Bereitstellung, die Sie löschen möchten.

  4. Klicken Sie auf Aktionen und wählen Sie Löschen aus.

  5. Geben Sie den Namen der Bereitstellung ein und klicken Sie auf Bestätigen.

    Im Feld Status wird Löschen angezeigt.

    Wenn der Löschvorgang fehlschlägt, lesen Sie die Anleitung zur Fehlerbehebung unter Fehler beim Löschen einer Bereitstellung.

Wenn Sie das für die Lösung verwendete Google Cloud-Projekt nicht mehr benötigen, können Sie das Projekt löschen. Weitere Informationen finden Sie unter Optional: Projekt löschen.

Mit der Terraform-Befehlszeile löschen

Verwenden Sie dieses Verfahren, wenn Sie die Lösung mit der Terraform CLI bereitgestellt haben.

  1. Prüfen Sie in Cloud Shell, ob das aktuelle Arbeitsverzeichnis $HOME/cloudshell_open/terraform-dynamic-python-webapp/infra ist. Ist dies nicht der Fall, wechseln Sie zu diesem Verzeichnis.

  2. Entfernen Sie die von Terraform bereitgestellten Ressourcen:

    terraform destroy
    

    Terraform zeigt eine Liste der Ressourcen an, die gelöscht werden.

  3. Wenn Sie aufgefordert werden, die Aktionen auszuführen, geben Sie yes ein.

    Terraform zeigt Nachrichten mit dem Fortschritt an. Nachdem alle Ressourcen gelöscht wurden, zeigt Terraform die folgende Meldung an:

    Destroy complete!
    

    Wenn der Löschvorgang fehlschlägt, lesen Sie die Anleitung zur Fehlerbehebung unter Fehler beim Löschen einer Bereitstellung.

Wenn Sie das für die Lösung verwendete Google Cloud-Projekt nicht mehr benötigen, können Sie das Projekt löschen. Weitere Informationen finden Sie unter Optional: Projekt löschen.

Optional: Projekt löschen

Wenn Sie die Lösung in einem neuen Google Cloud-Projekt bereitgestellt haben und das Projekt nicht mehr benötigen, löschen Sie es mit den folgenden Schritten:

  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 auf Löschen.
  3. Geben Sie an der Eingabeaufforderung die Projekt-ID ein und klicken Sie auf Beenden.

Wenn Sie das Projekt behalten möchten, löschen Sie das Dienstkonto, das für diese Lösung erstellt wurde, wie im nächsten Abschnitt beschrieben.

Optional: Dienstkonto löschen

Wenn Sie das Projekt gelöscht haben, das Sie für die Lösung verwendet haben, überspringen Sie diesen Abschnitt.

Wie bereits in diesem Leitfaden erwähnt, wurde bei der Bereitstellung der Lösung ein Dienstkonto für Sie erstellt. Dem Dienstkonto wurden vorübergehend bestimmte IAM-Berechtigungen zugewiesen; Das heißt, die Berechtigungen werden nach dem Abschluss der Bereitstellungs- und Löschvorgänge der Lösung automatisch widerrufen, aber das Dienstkonto wird nicht gelöscht. Google empfiehlt, dass Sie dieses Dienstkonto löschen.

  • Wenn Sie die Lösung über die Google Cloud Console bereitgestellt haben, rufen Sie die Seite Lösungsbereitstellungen auf. Wenn Sie sich bereits auf dieser Seite befinden, aktualisieren Sie den Browser. Im Hintergrund wird ein Prozess ausgelöst, mit dem das Dienstkonto gelöscht wird. Es sind keine weiteren Aktionen erforderlich.

  • Wenn Sie die Lösung mithilfe der Terraform-Befehlszeile bereitgestellt haben, führen Sie folgende Schritte aus:

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

      Zur Seite „Dienstkonten“

    2. Wählen Sie das Projekt aus, das Sie für die Lösung verwendet haben.

    3. Wählen Sie das Dienstkonto aus, das Sie löschen möchten.

      Die E-Mail-ID des Dienstkontos, das für die Lösung erstellt wurde, hat das folgende Format:

      goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
      

      Die E-Mail-ID enthält die folgenden Werte:

      • DEPLOYMENT_NAME: Der Name der Bereitstellung.
      • NNN: Eine zufällige dreistellige Zahl.
      • PROJECT_ID: Die ID des Projekts, in dem Sie die Lösung bereitgestellt haben.
    4. Klicken Sie auf Löschen.

Fehler beheben

Welche Aktionen Sie zur Diagnose und Behebung von Fehlern ausführen können, hängt von der Bereitstellungsmethode und der Komplexität des Fehlers ab.

Fehler bei der Bereitstellung über die Console

Wenn Sie die Console verwenden und die Bereitstellung fehlschlägt, gehen Sie so vor:

  1. Rufen Sie die Seite Lösungsbereitstellungen auf.

    Wenn die Bereitstellung fehlgeschlagen ist, wird im Feld Status der Eintrag Fehlgeschlagen angezeigt.

  2. So rufen Sie die Details zu den Fehlern auf, die das Problem verursacht haben:

    1. Klicken Sie auf Aktionen.

    2. Wählen Sie Cloud Build-Logs ansehen aus.

  3. Prüfen Sie das Cloud Build-Log und ergreifen Sie entsprechende Maßnahmen, um das Problem zu beheben.

Fehler bei der Bereitstellung mit der Terraform-Befehlszeile

Wenn die Bereitstellung bei Verwendung von Terraform fehlschlägt, enthält die Ausgabe des Befehls terraform apply Fehlermeldungen, die Sie prüfen können, um das Problem zu diagnostizieren.

Die Beispiele in den folgenden Abschnitten zeigen Bereitstellungsfehler, die bei der Verwendung von Terraform auftreten können.

Fehler „API nicht aktiviert“

Wenn Sie ein Projekt erstellen und dann sofort versuchen, die Lösung im neuen Projekt bereitzustellen, schlägt die Bereitstellung mit folgendem Fehler möglicherweise fehl:

Error: Error creating Network: googleapi: Error 403: Compute Engine API has not
been used in project PROJECT_ID before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=PROJECT_ID
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.

Wenn dieser Fehler auftritt, warten Sie einige Minuten und führen Sie dann den Befehl terraform apply noch einmal aus.

Fehler beim Zuweisen der angeforderten Adresse

Wenn Sie den terraform apply-Befehl ausführen, kann ein cannot assign requested address-Fehler mit einer Meldung wie der folgenden auftreten:

Error: Error creating service account:
 Post "https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts:
 dial tcp [2001:db8:ffff:ffff::5f]:443:
 connect: cannot assign requested address

Wenn dieser Fehler auftritt, führen Sie den terraform apply-Befehl noch einmal aus.

Fehler beim Löschen einer Bereitstellung

In bestimmten Fällen können Versuche, eine Bereitstellung zu löschen, fehlschlagen:

  • Wenn Sie nach dem Bereitstellen einer Lösung über die Console eine Ressource ändern, die von der Lösung bereitgestellt wurde, und Sie dann versuchen, die Bereitstellung zu löschen, schlägt der Vorgang möglicherweise fehl. Das Feld Status auf der Seite Lösungsbereitstellungen zeigt Fehlgeschlagen und das Cloud Build-Log zeigt die Fehlerursache an.
  • Wenn Sie nach dem Bereitstellen einer Lösung mit der Terraform-Befehlszeile eine Ressource über eine Nicht-Terraform-Schnittstelle ändern (z. B. die Console) und dann versuchen, die Bereitstellung zu löschen, schlägt der Vorgang möglicherweise fehl. Die Nachrichten in der Ausgabe des Befehls terraform destroy enthalten die Ursache des Fehlers.

Überprüfen Sie die Fehlerlogs und -meldungen, identifizieren und löschen Sie die Ressourcen, die den Fehler verursacht haben, und versuchen Sie dann noch einmal, die Bereitstellung zu löschen.

Wenn eine console-basierte Bereitstellung nicht gelöscht wird und Sie den Fehler nicht mit dem Cloud Build-Log diagnostizieren können, können Sie die Bereitstellung mit der Terraform-Befehlszeile löschen. Dies wird im nächsten Abschnitt beschrieben.

Console-basierte Bereitstellung mithilfe der Terraform-Befehlszeile löschen

In diesem Abschnitt wird beschrieben, wie Sie eine console-basierte Bereitstellung löschen, wenn Fehler beim Löschen aus der Console auftreten. Bei diesem Ansatz laden Sie die Terraform-Konfiguration für die Bereitstellung herunter, die Sie löschen möchten, und verwenden dann die Terraform-Befehlszeile, um die Bereitstellung zu löschen.

  1. Ermitteln Sie die Region, in der der Terraform-Code, die Logs und andere Daten der Bereitstellung gespeichert sind. Diese Region kann sich von der Region unterscheiden, die Sie bei der Bereitstellung der Lösung ausgewählt haben.

    1. Rufen Sie in der Google Cloud Console die Seite Lösungsbereitstellungen auf.

      Zu „Lösungsbereitstellungen“

    2. Wählen Sie das Projekt aus, das die Bereitstellung enthält, die Sie löschen möchten.

    3. Identifizieren Sie in der Liste der Bereitstellungen die Zeile für die Bereitstellung, die Sie löschen möchten.

    4. Klicken Sie auf Gesamten Zeileninhalt ansehen.

    5. Beachten Sie in der Spalte Standort den zweiten Standort, wie im folgenden Beispiel hervorgehoben:

      Speicherort des Bereitstellungscodes, der Logs und anderer Artefakte.

  2. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  3. Erstellen Sie Umgebungsvariablen für die Projekt-ID, die Region und den Namen der Bereitstellung, die Sie löschen möchten:

    export REGION="REGION"
    export PROJECT_ID="PROJECT_ID"
    export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
    

    Ersetzen Sie in diesen Befehlen Folgendes:

    • REGION: der Standort, den Sie zuvor in dieser Prozedur notiert haben.
    • PROJECT_ID: die ID des Projekts, in dem Sie die Lösung bereitgestellt haben.
    • DEPLOYMENT_NAME: der Name der Bereitstellung, die Sie löschen möchten.
  4. Rufen Sie die ID der neuesten Überarbeitung der Bereitstellung ab, die Sie löschen möchten:

    export REVISION_ID=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .latestRevision -r)
        echo $REVISION_ID
    

    Die Ausgabe sieht in etwa so aus:

    projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
    
  5. Rufen Sie den Cloud Storage-Speicherort der Terraform-Konfiguration für die Bereitstellung ab:

    export CONTENT_PATH=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \
        | jq .applyResults.content -r)
        echo $CONTENT_PATH
    

    Im Folgenden finden Sie ein Beispiel für die Ausgabe dieses Befehls:

    gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
    
  6. Laden Sie die Terraform-Konfiguration von Cloud Storage in Cloud Shell herunter:

    gsutil cp -r $CONTENT_PATH $HOME
    cd $HOME/content/infra
    

    Warten Sie, bis die Meldung Operation completed angezeigt wird, wie im folgenden Beispiel gezeigt:

    Operation completed over 45 objects/268.5 KiB
    
  7. Initialisieren Sie Terraform:

    terraform init
    

    Warten Sie, bis folgende Meldung angezeigt wird:

    Terraform has been successfully initialized!
    
  8. Entfernen Sie die bereitgestellten Ressourcen:

    terraform destroy
    

    Terraform zeigt eine Liste der Ressourcen an, die gelöscht werden.

    Wenn Warnungen zu nicht deklarierten Variablen angezeigt werden, ignorieren Sie die Warnungen.

  9. Wenn Sie aufgefordert werden, die Aktionen auszuführen, geben Sie yes ein.

    Terraform zeigt Nachrichten mit dem Fortschritt an. Nachdem alle Ressourcen gelöscht wurden, zeigt Terraform die folgende Meldung an:

    Destroy complete!
    
  10. Löschen Sie das Bereitstellungsartefakt:

    curl -X DELETE \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
    
  11. Warten Sie einige Sekunden und prüfen Sie dann, ob das Bereitstellungsartefakt gelöscht wurde:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .error.message
    

    Wenn in der Ausgabe null angezeigt wird, warten Sie einige Sekunden und führen Sie den Befehl noch einmal aus.

    Nachdem das Bereitstellungsartefakt gelöscht wurde, wird wie im folgenden Beispiel gezeigt eine Meldung angezeigt:

    Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
    

Feedback geben

Schnellstartlösungen dienen nur zu Informationszwecken und sind keine offiziell unterstützten Produkte. Google kann Lösungen ohne Vorankündigung ändern oder entfernen.

Prüfen Sie zur Behebung von Fehlern die Cloud Build-Logs und die Terraform-Ausgabe.

So senden Sie Feedback:

  • Verwenden Sie für Dokumentation, Anleitungen in der Console oder die Lösung die Schaltfläche Feedback senden auf der Seite.
  • Erstellen Sie bei unverändertem Code Fragen im entsprechenden GitHub-Repository:

    GitHub-Probleme werden auf Best-Effort-Basis geprüft und sind nicht für allgemeine Fragen zur Nutzung vorgesehen.

  • Bei Problemen mit Produkten, die in der Lösung verwendet werden, wenden Sie sich an den Cloud Customer Care.

Nächste Schritte

Diese Lösung zeigt, wie Sie eine E-Commerce-Webanwendung mithilfe von Cloud Run bereitstellen können. Weitere Informationen zu Google Cloud-Produkten und -Funktionen finden Sie unter: