Node.js-Anwendungen von Heroku zu Cloud Run migrieren

In dieser Anleitung erfahren Sie, wie Sie Node.js-Webanwendungen, die auf Heroku ausgeführt werden, zu Cloud Run in Google Cloud migrieren. Diese Anleitung richtet sich an Architekten und Produktinhaber, die ihre Anwendungen von Heroku zu verwalteten Diensten in Google Cloud migrieren möchten.

Cloud Run ist eine verwaltete Computing-Plattform, mit der Sie zustandslose Container ausführen können, die über HTTP-Anfragen aufgerufen werden. Es basiert auf der Open-Source-Plattform Knative, die eine plattformübergreifende Portierbarkeit bietet und Container-Workflows sowie Standards für Continuous Delivery unterstützt. Die Cloud Run-Plattform ist gut in die Google Cloud-Produktsuite integriert und erleichtert die Entwicklung von portablen, skalierbaren und stabilen Anwendungen.

In dieser Anleitung erfahren Sie, wie Sie eine Anwendung zu Google Cloud migrieren, die in Node.js geschrieben ist und Heroku Postgres als unterstützenden Dienst in Heroku verwendet. Die Webanwendung ist containerisiert und wird in Cloud Run gehostet. Sie verwendet Cloud SQL for PostgreSQL als Persistenzschicht.

In dieser Anleitung verwenden Sie die einfache Anwendung Tasks, mit der Sie Aufgaben erstellen und sie sich ansehen können. Diese Aufgaben werden in der aktuellen Bereitstellung der Anwendung auf Heroku in Heroku Postgres gespeichert.

In dieser Anleitung wird davon ausgegangen, dass Sie mit den grundlegenden Funktionen von Heroku vertraut sind und ein Heroku-Konto oder Zugriff auf eines haben. Außerdem wird davon ausgegangen, dass Sie mit Cloud Run, Cloud SQL, Docker und Node.js vertraut sind.

Ziele

  • Erstellen Sie ein Docker-Image, um die Anwendung in Cloud Run bereitzustellen.
  • Erstellen Sie eine Cloud SQL for PostgreSQL-Instanz, die nach der Migration zu Google Cloud als Back-End dient.
  • Untersuchen Sie den Node.js-Code, um zu verstehen, wie Cloud Run eine Verbindung zu Cloud SQL herstellt und welche Codeänderungen (falls erforderlich) für die Migration von Heroku zu Cloud Run erforderlich sind.
  • Migrieren Sie Daten von Heroku Postgres zu Cloud SQL for PostgreSQL.
  • Stellen Sie die Anwendung für Cloud Run bereit.
  • Testen Sie die bereitgestellte Anwendung.

Kosten

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

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.

Möglicherweise werden Ihnen auch die Ressourcen in Rechnung gestellt, die Sie in Heroku verwenden.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  4. Cloud SQL and Cloud Run APIs aktivieren.

    Aktivieren Sie die APIs

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  7. Cloud SQL and Cloud Run APIs aktivieren.

    Aktivieren Sie die APIs

Umgebung einrichten

  1. Cloud Shell öffnen

    Zu Cloud Shell

  2. Weisen Sie in Cloud Shell Variablen Standardwerte zu, die in der gesamten Anleitung verwendet werden, z. B. Region und Zone. In dieser Anleitung verwenden Sie us-central1 als Standardregion und us-central1-a als Standardzone.

    gcloud config set compute/region us-central1
    gcloud config set compute/zone us-central1-a
    
  3. Konfigurieren Sie die Google Cloud-CLI so, dass us-central1 als Standardregion für Cloud Run verwendet wird:

    gcloud config set run/region us-central1
    
  4. Erstellen Sie eine Umgebungsvariable für einen Standardanwendungsnamen für diese Anleitung:

    export APP_NAME=tasks-web-app
    

Architektur

In den folgenden Abbildungen werden die Architektur der Webanwendung in Heroku (wie vorgegeben) und ihr Architekturlayout in Google Cloud (das Sie erstellen werden) beschrieben.

Diagramm: Aktuelle Architektur in Heroku
Abbildung 1: Aktuelle Architektur in Heroku

Die Anwendung Tasks, die derzeit in Heroku bereitgestellt wird, besteht aus einem oder mehreren Web-Dynos. Web-Dynos können HTTP-Traffic empfangen und darauf reagieren. Worker-Dynos eignen sich im Gegensatz dazu besser für Hintergrundjobs und zeitgesteuerte Aufgaben. Die Anwendung stellt mithilfe der Vorlagenbibliothek Mustache für Node.js eine Indexseite bereit, die in einer Postgres-Datenbank gespeicherte Aufgaben anzeigt.

Sie können über eine HTTPS-URL auf die Anwendung zugreifen. Mit einer /tasks-Route zu dieser URL können Sie neue Aufgaben erstellen.

Diagramm: Aktuelle Architektur in Heroku
Abbildung 2: In Google Cloud erstellte Architektur

In Google Cloud wird Cloud Run als serverlose Plattform zum Bereitstellen der Anwendung Tasks verwendet. Cloud Run wurde für die Ausführung zustandsloser, anfragengesteuerter Container entwickelt. Cloud Run ist besonders geeignet, wenn Ihr verwalteter Dienst Containeranwendungen unterstützt, die automatisch skaliert werden – auch auf null, wenn sie keinen Traffic verarbeiten.

In Heroku verwendete Komponenten denen in Google Cloud zuordnen

In der folgenden Tabelle sind die Komponenten der Heroku-Plattform denen in Google Cloud zugeordnet. Mit dieser Zuordnung können Sie die in dieser Anleitung beschriebene Architektur von Heroku in Google Cloud übertragen.

Komponente Heroku-Plattform Google Cloud
Container Dynos: Heroku verwendet das Containermodell, um Heroku-Anwendungen zu erstellen und zu skalieren. Diese Linux-Container werden als Dynos bezeichnet und können auf eine von Ihnen angegebene Anzahl skaliert werden, um Ressourcenanforderungen für Ihre Heroku-Anwendung zu unterstützen. Je nach Speicher- und CPU-Anforderungen der Anwendung können Sie aus verschiedenen Dyno-Typen auswählen. Cloud Run-Container: Google Cloud unterstützt das Ausführen von containerisierten Arbeitslasten in zustandslosen Containern, die in einer vollständig verwalteten Umgebung oder in GKE-Clustern (Google Kubernetes Engine) ausgeführt werden können.
Webanwendung Heroku-Anwendung: Dynos sind die Bausteine der Heroku-Anwendungen. Anwendungen bestehen in der Regel aus einem oder mehreren Dyno-Typen, normalerweise aus einer Kombination aus Web- und Worker-Dynos. Cloud Run-Dienst: Eine Webanwendung kann als Cloud Run-Dienst modelliert werden. Jeder Dienst erhält seinen eigenen HTTPS-Endpunkt und kann je nach Traffic zu Ihrem Dienstendpunkt automatisch von 0 bis N vertikal skaliert werden.
Datenbank Heroku Postgres ist die Database-as-a-Service (DaaS) von Heroku, die auf PostgreSQL basiert. Cloud SQL ist ein verwalteter Datenbankdienst für relationale Datenbanken in Google Cloud. Dieser Dienst bietet zwei Varianten: PostgreSQL und MySQL.

Beispiel-Webanwendung Tasks in Heroku bereitstellen

In den folgenden Abschnitten wird gezeigt, wie Sie die Befehlszeile (CLI) für Heroku einrichten, das GitHub-Quell-Repository klonen und die Anwendung in Heroku bereitstellen.

Befehlszeile für Heroku einrichten

  1. Installieren Sie die Heroku-Befehlszeile in Cloud Shell:

  2. Melden Sie sich in Ihrem Heroku-Konto an:

    heroku login --interactive
    

Quell-Repository klonen

  1. Klonen Sie in Cloud Shell das GitHub-Repository der Beispielanwendung Tasks:

    git clone https://github.com/GoogleCloudPlatform/migrate-webapp-heroku-to-cloudrun-node.git
    
  2. Wechseln Sie in das Verzeichnis, das durch das Klonen des Repositorys erstellt wurde:

    cd migrate-webapp-heroku-to-cloudrun-node
    

    Das Verzeichnis enthält die folgenden Dateien:

    • Ein Node.js-Skript mit dem Namen index.js und dem Code für die von der Webanwendung bereitgestellten Routen.
    • package.json- und package-lock.json-Dateien, die die Abhängigkeiten der Webanwendung beschreiben. Sie müssen diese Abhängigkeiten installieren, damit die Anwendung ausgeführt werden kann.
    • Eine Procfile-Datei, die den Befehl angibt, der von der Anwendung beim Start ausgeführt wird. Erstellen Sie eine Procfile-Datei, um die Anwendung in Heroku bereitzustellen.
    • Ein views-Verzeichnis mit dem HTML-Inhalt, der von der Webanwendung auf der Route "/" bereitgestellt wird.
    • Eine .gitignore-Datei.

Anwendung in Heroku bereitstellen

  1. Erstellen Sie in Cloud Shell eine Heroku-Anwendung:

    heroku create
    
  2. Fügen Sie das Heroku Postgres-Add-on hinzu, um eine PostgreSQL-Datenbank bereitzustellen:

    heroku addons:create heroku-postgresql:hobby-dev
    
  3. Prüfen Sie, ob das Add-on erfolgreich hinzugefügt wurde:

    heroku addons
    

    Wenn das Postgres-Add-on erfolgreich hinzugefügt wurde, erhalten Sie eine Meldung wie die folgende:

    Owning-App               Add-on                      Plan                          Price    State
    ----------------------   ------------------------    --------------------------    -----    -----
    sample-nodejs-todo-app   postgresql-adjacent-95585   heroku-postgresql:hobby-dev   free     created
    
  4. Stellen Sie die Anwendung in Heroku bereit:

    git push heroku master
    
  5. Rufen Sie den Heroku Postgres-URI aus der Heroku-Konsole ab. Alternativ können Sie den folgenden Befehl ausführen, um den URI abzurufen:

    heroku config
    

    Notieren Sie den abgerufenen URI. Sie benötigen ihn im nächsten Schritt.

  6. Führen Sie einen Docker-Container aus. Ersetzen Sie database-uri durch den Heroku Postgres-URI, den Sie im vorherigen Schritt notiert haben.

    docker run -it --rm postgres psql "database-uri"
    
  7. Erstellen Sie im Docker-Container die Tabelle TASKS mit dem folgenden Befehl:

    CREATE TABLE TASKS
    (DESCRIPTION TEXT NOT NULL);
    
  8. Schließen Sie den Container:

    exit
    
  9. Rufen Sie in Cloud Shell die URL der Heroku-Anwendung ab:

    heroku info
    
  10. Öffnen Sie die URL der Anwendung in einem Browserfenster. Die Anwendung sieht so aus. Ihre Version enthält allerdings nicht die hier aufgelisteten Aufgaben:

    Screenshot: To-do-Anwendung im Webbrowser

  11. Erstellen Sie im Browser Beispielaufgaben in Ihrer Anwendung. Die Aufgaben müssen aus der Datenbank abgerufen werden und auf der Benutzeroberfläche sichtbar sein.

Webanwendungscode für die Migration zu Cloud Run vorbereiten

In diesem Abschnitt werden die Schritte beschrieben, die Sie ausführen müssen, um Ihre Webanwendung für die Bereitstellung in Cloud Run vorzubereiten.

Docker-Container in Container Registry erstellen und veröffentlichen

Sie benötigen ein Docker-Image, um den Anwendungscontainer zu erstellen und ihn in Cloud Run ausführen zu können. Sie können den Container manuell oder mit Buildpacks erstellen.

Container manuell erstellen

  1. Erstellen Sie in Cloud Shell ein Dockerfile in dem Verzeichnis, das durch das Klonen des Repositorys für diese Anleitung erstellt wurde:

    cat <<EOF > Dockerfile
    # Use the official Node image.
    # https://hub.docker.com/_/node
    FROM node:10-alpine
    
    # Create and change to the app directory.
    WORKDIR /app
    
    # Copying this separately prevents re-running npm install on every code change.
    COPY package*.json ./
    RUN npm install
    
    # Copy local code to the container image.
    COPY . /app
    
    # Configure and document the service HTTP port.
    ENV PORT 8080
    EXPOSE $PORT
    
    # Run the web service on container startup.
    CMD ["npm", "start"]
    EOF
    
  2. Erstellen Sie den Container mit Cloud Build und veröffentlichen Sie das Image in Container Registry:

    gcloud builds submit --tag gcr.io/${DEVSHELL_PROJECT_ID}/$APP_NAME:1
    
  3. Erstellen Sie eine Umgebungsvariable, die den Namen des von Ihnen erstellten Docker-Images enthält:

    export IMAGE_NAME="gcr.io/${DEVSHELL_PROJECT_ID}/$APP_NAME:1"
    

Container mit Buildpacks erstellen

  1. Installieren Sie die pack-Befehlszeile in Cloud Shell:

    wget https://github.com/buildpack/pack/releases/download/v0.2.1/pack-v0.2.1-linux.tgz
    tar xvf pack-v0.2.1-linux.tgz
    rm pack-v0.2.1-linux.tgz
    sudo mv pack /usr/local/bin/
    
  2. Legen Sie für die pack-Befehlszeile fest, dass standardmäßig der Heroku-Builder verwendet wird:

    pack set-default-builder heroku/buildpacks
    
  3. Erstellen Sie eine Umgebungsvariable für den Namen des Docker-Images:

    export IMAGE_NAME=gcr.io/${DEVSHELL_PROJECT_ID}/$APP_NAME:1
    
  4. Erstellen Sie das Image mit dem pack-Befehl und übertragen Sie das Image per Push in Container Registry oder veröffentlichen Sie es dort:

    pack build --publish $IMAGE_NAME
    

Cloud SQL for PostgreSQL-Instanz erstellen

Sie erstellen eine Cloud SQL for PostgreSQL-Instanz, die als Back-End für die Webanwendung dient. In dieser Anleitung eignet sich PostgreSQL am besten, da die Beispielanwendung auf Heroku bereitgestellt wird und eine Postgres-Datenbank als Back-End verwendet. Die Migration von einem verwalteten Postgres-Dienst zu Cloud SQL for PostgreSQL erfordert für diese Anwendung keine Schemaänderungen.

gcloud

  1. Erstellen Sie eine Umgebungsvariable mit dem Namen CLOUDSQL_DB_NAME, die den Namen der Datenbankinstanz enthält, die Sie im nächsten Schritt erstellen:

    export CLOUDSQL_DB_NAME=tasks-db
    
  2. Erstellen Sie die Datenbank:

    gcloud sql instances create $CLOUDSQL_DB_NAME  \
        --cpu=1 \
        --memory=4352Mib \
        --database-version=POSTGRES_9_6 \
        --region=us-central1
    

    Die Initialisierung der Instanz kann einige Minuten dauern.

  3. Legen Sie ein Passwort für den Postgres-Nutzer fest:

    gcloud sql users set-password postgres \
        --instance=$CLOUDSQL_DB_NAME  \
        --password=postgres-password
    

Console

  1. Wechseln Sie in der Console zur Seite Cloud SQL-Instanzen:

    ZUR SEITE "CLOUD SQL-INSTANZEN"

  2. Klicken Sie auf Instanz erstellen.

  3. Wählen Sie PostgreSQL aus und klicken Sie auf Weiter.

  4. Geben Sie tasks-db als Namen der Instanz ein.

  5. Erstellen Sie ein Passwort für den Nutzer postgres.

  6. Wählen Sie us-central1 als Region aus.

  7. Ändern Sie keine anderen Standardeinstellungen.

Daten aus Heroku Postgres in Cloud SQL importieren

Es gibt mehrere Migrationsmuster, mit denen Sie Daten zu Cloud SQL migrieren können. Normalerweise ist es am besten, Cloud SQL als Replikat für die zu migrierende Datenbank zu konfigurieren und Cloud SQL nach der Migration zur primären Instanz zu machen. Bei dieser Vorgehensweise ist keine oder nur eine geringe Ausfallzeit erforderlich. Heroku Postgres unterstützt keine externen Replikate (Follower). In dieser Anleitung verwenden Sie daher Open-Source-Tools, um das Schema der Anwendung zu migrieren.

Für die Anwendung Tasks in dieser Anleitung verwenden Sie das Dienstprogramm pg_dump, um Daten aus Heroku Postgres in einen Cloud Storage-Bucket zu exportieren und dann in Cloud SQL zu importieren. Dieses Dienstprogramm kann Daten zwischen einheitlichen Versionen übertragen oder auch, wenn die Version der Zieldatenbank neuer ist als die Quelldatenbank.

  1. Rufen Sie in Cloud Shell die Anmeldedaten für Ihre Heroku Postgres-Datenbank ab, die an die Beispielanwendung angehängt ist. Sie benötigen diese Anmeldedaten im nächsten Schritt.

    heroku pg:credentials:url
    

    Dieser Befehl gibt den String mit den Verbindungsinformationen und die Verbindungs-URL für die Anwendung zurück. Der String mit den Verbindungsinformationen hat folgendes Format:

    "dbname=database-name host=FQDN port=5432 user=user-name password=password-string sslmode=require"
    

    Ein Beispiel für einen FQDN-Wert (voll qualifizierter Domainname) in einem Verbindungsinformationsstring finden Sie in der Heroku-Dokumentation.

  2. Legen Sie Umgebungsvariablen für Heroku-Werte fest, die Sie in den nachfolgenden Schritten verwenden. Ersetzen Sie die Platzhalter FQDN, user-name, password-string und database-name durch die entsprechenden Werte im Verbindungsinformationsstring.

    export HEROKU_PG_HOST=FQDN
    export HEROKU_PG_USER=user-name
    export HEROKU_PG_PASSWORD=password-string
    export HEROKU_PG_DBNAME=database-name
    
  3. Erstellen Sie eine Sicherung Ihrer Heroku Postgres-Datenbank im SQL-Format:

    docker run \
      -it --rm \
      -e PGPASSWORD=$HEROKU_PG_PASSWORD \
      -v $(pwd):/tmp \
      --entrypoint "pg_dump" \
      postgres \
      -Fp \
      --no-acl \
      --no-owner \
      -h $HEROKU_PG_HOST \
      -U $HEROKU_PG_USER \
      $HEROKU_PG_DBNAME > herokudump.sql
    
  4. Erstellen Sie eine Umgebungsvariable, die den Namen Ihres Cloud Storage-Buckets enthält. Dieser Name sollte eindeutig sein. Die Umgebungsvariable muss das Format gs://bucket-name haben.

    export PG_BACKUP_BUCKET=gs://bucket-name
    
  5. Erstellen Sie mit dem gsutil-Befehlszeilentool einen Cloud Storage-Bucket:

    gsutil mb -c regional -l us-central1 $PG_BACKUP_BUCKET
    
  6. Laden Sie die SQL-Datei in diesen Bucket hoch:

    gsutil cp herokudump.sql $PG_BACKUP_BUCKET
    
  7. Wechseln Sie in der Console zur Seite Cloud SQL-Instanzen:

    ZUR SEITE "CLOUD SQL-INSTANZEN"

  8. Wählen Sie die Instanz aus, um die zugehörige Seite mit den Instanzdetails zu öffnen.

  9. Klicken Sie in der Schaltflächenleiste auf Importieren.

    Screenshot: SQL-Dumpdatei aus Cloud Storage importieren

  10. Geben Sie für die Cloud Storage-Datei den Pfad zur SQL-Dumpdatei ein, die Sie in Cloud Storage hochgeladen haben.

  11. Wählen Sie unter Importformat die Option SQL aus.

  12. Wählen Sie für Datenbank die Option postgres aus.

  13. Maximieren Sie Erweiterte Optionen und wählen Sie für Nutzer die Option postgres aus.

  14. Klicken Sie auf Importieren, um den Import zu starten.

  15. Wenn Sie sich die Aktualisierungen auf dem Tab Vorgänge für die Instanz ansehen, können Sie prüfen, ob der Import erfolgreich war.

So greift Cloud Run auf die Cloud SQL-Datenbank zu

So wie die in Heroku bereitgestellte Webanwendung eine Verbindung zur verwalteten Instanz von Heroku Postgres herstellen muss, benötigt Cloud Run Zugriff auf Cloud SQL, um Daten lesen und schreiben zu können.

Cloud Run kommuniziert mit Cloud SQL über den Cloud SQL-Proxy, der automatisch aktiviert und konfiguriert wird, wenn Sie den Container in Cloud Run bereitstellen. Für die Datenbank müssen keine externen IP-Adressen genehmigt werden, da die gesamte Kommunikation über eine sichere TCP-Verbindung des Proxys empfangen wird.

Ihr Code muss Datenbankvorgänge wie das Abrufen von Daten aus der Datenbank oder Schreiben in die Datenbank durch Aufrufen des Proxys über einen UNIX-Socket ausführen.

Da diese Webanwendung in Node.js geschrieben ist, verwenden Sie die Bibliothek pg-connection-string, um eine Datenbank-URL zu parsen und ein config-Objekt zu erstellen. Der Vorteil dieses Ansatzes besteht in der nahtlosen Verbindung zwischen den Back-End-Datenbanken in Heroku und Cloud Run.

Im nächsten Schritt übergeben Sie die Datenbank-URL als Umgebungsvariable, wenn Sie die Webanwendung bereitstellen.

Beispielanwendung für Cloud Run bereitstellen

  1. Erstellen Sie in Cloud Shell eine Umgebungsvariable, die den Verbindungsnamen der von Ihnen erstellten Cloud SQL-Instanz enthält:

    export DB_CONN_NAME=$(gcloud sql instances describe $CLOUDSQL_DB_NAME --format='value(connectionName)')
    
  2. Erstellen Sie eine Umgebungsvariable mit dem Namen DATABASE_URL, die den Verbindungsstring für die Verbindung zum Cloud SQL-Proxy über einen UNIX-Port enthält. Ersetzen Sie your-db-password durch das Passwort, das Sie für Ihre Datenbankinstanz erstellt haben.

    export DATABASE_URL="socket:/cloudsql/${DB_CONN_NAME}?db=postgres&user=postgres&password=your-db-password"
    
  3. Stellen Sie die Webanwendung für Cloud Run bereit.

    gcloud run deploy tasksapp-$DEVSHELL_PROJECT_ID \
        --image=$IMAGE_NAME \
        --set-env-vars=DATABASE_URL=$DATABASE_URL \
        --add-cloudsql-instances $DB_CONN_NAME \
        --allow-unauthenticated
    

    Der vorherige Befehl verknüpft auch Ihren Cloud Run-Container mit der von Ihnen erstellten Cloud SQL-Datenbankinstanz. Der Befehl legt eine Umgebungsvariable für Cloud Run fest, die auf den String DATABASE_URL verweist, den Sie im vorherigen Schritt erstellt haben.

Anwendung testen

  1. Rufen Sie in Cloud Shell die URL ab, über den Cloud Run Traffic verarbeitet:

    gcloud run services list
    

    Sie können sich den Cloud Run-Dienst auch in der Console ansehen.

  2. Rufen Sie die URL des Cloud Run-Diensts auf, um zu prüfen, ob Ihre Webanwendung HTTP-Anfragen akzeptiert.

Cloud Run erstellt oder startet einen neuen Container, wenn eine HTTP-Anfrage an den Bereitstellungsendpunkt gesendet wird und noch kein Container ausgeführt wird. Dies bedeutet, dass die Anfrage, die den Start eines neuen Containers auslöst, etwas länger dauern kann. Berücksichtigen Sie in Anbetracht dieser zusätzlichen Zeit die Anzahl der gleichzeitigen Anfragen, die Ihre Anwendung unterstützen kann, sowie etwaige Speicheranforderungen.

Für diese Anwendung verwenden Sie die Standardeinstellungen für die Gleichzeitigkeit, mit der ein Cloud Run-Dienst 80 Anfragen gleichzeitig über einen einzelnen Container verarbeiten kann.

Bereinigen

Führen Sie eine Bereinigung durch, um zu vermeiden, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden. Sie können auch die für diese Anleitung in Heroku erstellten Ressourcen löschen.

Google Cloud-Projekt löschen

  1. Wechseln Sie in der 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.

Heroku-Anwendung löschen

Führen Sie den folgenden Befehl aus, um die in Heroku und dem zugehörigen PostgreSQL-Add-on bereitgestellte Beispielanwendung zu löschen:

heroku apps:destroy -a $APP_NAME

Nächste Schritte