Verbindung über Cloud Run herstellen

In dieser Kurzanleitung wird beschrieben, wie Sie über die Google Cloud console und eine Clientanwendung eine Beispielanwendung in einem Cloud Run-Dienst bereitstellen. Diese Beispielanwendung verbindet Cloud Run mit AlloyDB for PostgreSQL.

Beispielcode der Anwendung

Der Beispielcode der Anwendung für diese Kurzanleitung befindet sich im examples/go Verzeichnis des GoogleCloudPlatform/alloydb-auth-proxy GitHub-Repositorys.

Die Anwendung ist in der Programmiersprache Go geschrieben und dient zum Erfassen von Abstimmungen. Die Hauptlogik ist in der Datei main.go enthalten, die einen Webserver startet und Nutzeranfragen verarbeitet.

Die Datenbankverbindung wird über Umgebungsvariablen konfiguriert, die Sie beim Erstellen des Cloud Run-Dienstes einrichten. Diese Variablen teilen der Anwendung mit, wie sie eine Verbindung zu Ihrer AlloyDB-Instanz herstellen kann, einschließlich des Datenbanknamens, des Nutzers, des Passworts und der IP-Adresse der Instanz. Der Code verwendet diese Variablen, um eine sichere Verbindung zu Ihrer AlloyDB-Datenbank herzustellen.

Code-Repository

Das Repository alloydb-auth-proxy enthält den AlloyDB Auth-Proxy, ein Tool, mit dem Sie sicher eine Verbindung zu Ihren AlloyDB-Instanzen herstellen können. Das Repository enthält auch zugehörige Bibliotheken und Beispiele, z. B. die in dieser Kurzanleitung verwendete Go-Anwendung.

Sie benötigen nicht das gesamte Projekt alloydb-auth-proxy, um eine Verbindung von Cloud Run zu AlloyDB herzustellen. Der Befehl cloudshell_open klont das gesamte Repository, aber die einzigen Dateien, die zum Erstellen des Containers für diese Kurzanleitung verwendet werden, befinden sich im Verzeichnis examples/go.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistung 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  10. Achten Sie darauf, dass Sie einen AlloyDB-Cluster und eine primäre Instanz haben. Weitere Informationen finden Sie unter Cluster und primäre Instanz erstellen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Herstellen einer Verbindung von Cloud Run benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Verbindung zu Ihrer Instanz herstellen und eine Datenbank erstellen

  1. Wenn Sie sich nicht auf der Seite Übersicht Ihres neu erstellten Clusters befinden, rufen Sie in der Google Cloud console die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie auf den Clusternamen my-cluster, um die Seite Übersicht des Clusters aufzurufen.

  3. Klicken Sie im Navigationsmenü auf AlloyDB Studio.

  4. Wählen Sie auf der Seite In AlloyDB Studio anmelden in der Liste Datenbank die Option postgres aus.

  5. Wählen Sie in der Drop-down-Liste Nutzer die Option postgres aus.

  6. Geben Sie im Feld Passwort das Passwort ein, das Sie unter Cluster und primäre Instanz erstellen erstellt haben.

  7. Klicken Sie auf Authentifizieren. Im Bereich Explorer wird eine Liste der Objekte in Ihrer Datenbank angezeigt.

  8. Erstellen Sie auf dem Tab Editor 1 eine Datenbank:

    CREATE DATABASE quickstart_db;
    
  9. Klicken Sie auf Ausführen. Warten Sie, bis im Bereich Ergebnisse die Meldung Statement executed successfully angezeigt wird.

Projekt-ID ermitteln

  1. Rufen Sie in der Google Cloud console die Seite Dashboard auf.

    Zum Dashboard

  2. Suchen Sie die Projekt-ID auf der Karte Projektinformationen.

  3. Notieren Sie sich die Projekt-ID. Sie benötigen sie für den nächsten Schritt dieser Kurzanleitung.

Artifact Registry mit einem Image der Beispielanwendung füllen

  1. Öffnen Sie in der Google Cloud console Cloud Shell.

    Cloud Shell öffnen

  2. Verwenden Sie im Cloud Shell-Editor den folgenden Befehl, um das Repository mit dem Beispielcode der Anwendung von GitHub zu klonen:

    cloudshell_open --repo_url \
    "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy" \
    --dir \
    "examples/go" \
    --force_new_clone
  3. Erstellen Sie in Artifact Registry ein Repository für Docker-Images:

    gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_ID

    Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

  4. Klicken Sie im Dialogfeld Cloud Shell autorisieren auf Autorisieren. Diese Aufforderung wird nicht angezeigt, wenn Sie diesen Schritt bereits ausgeführt haben.

  5. Verwenden Sie den folgenden Befehl, um einen Docker-Container zu erstellen und in Artifact Registry zu veröffentlichen:

     gcloud builds submit --tag  us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_ID

    Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

    Der Beispielcode der Anwendung für diese Kurzanleitung befindet sich im examples/go Verzeichnis des GoogleCloudPlatform/alloydb-auth-proxy GitHub-Repositorys. Mit dem Befehl cloudshell_open im vorherigen Schritt wird dieses Repository automatisch geklont und das richtige Verzeichnis für Sie geöffnet.

IP-Adresse für die neue Instanz ermitteln

  1. Rufen Sie in der Google Cloud console die Seite Cluster auf.

    Zu den Clustern

  2. Suchen Sie in der Tabelle die Zeile, deren Ressourcenname my-primary ist.

  3. Notieren Sie sich die Private IP-Adresse dieser Zeile. Sie benötigen sie für den nächsten Schritt dieser Kurzanleitung.

    Ein Beispiel für das Format der IP-Adresse ist 172.19.209.2:5432.

Dienst für Cloud Run erstellen

  1. Rufen Sie in der Google Cloud console die Seite Cloud Run auf.

    Zu Cloud Run

  2. Klicken Sie auf dem Tab Dienste auf Container bereitstellen.

  3. Wählen Sie auf der Seite Dienst erstellen die Option Eine Überarbeitung aus einem vorhandenen Container-Image bereitstellen aus.

  4. Klicken Sie im Feld Container-Image-URL auf Auswählen.

  5. Führen Sie im Bereich Container-Image auswählen die folgenden Schritte aus:

    1. Wählen Sie den Tab Artifact Registry aus.
    2. Maximieren Sie us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy.
    3. Maximieren Sie run-sql.
    4. Wählen Sie das aktuelle Image aus.
    5. Klicken Sie auf Auswählen.
  6. Geben Sie im Feld Name des Dienstes quickstart-service ein.

  7. Achten Sie darauf, dass in der Liste Region standardmäßig us-central1 (Iowa) ausgewählt ist.

  8. Wählen Sie im Bereich Authentifizierung die Option Öffentlichen Zugriff zulassen aus.

  9. Achten Sie darauf, dass im Bereich CPU-Zuweisung und Preise die Option CPU wird nur während der Anfrageverarbeitung zugewiesen ausgewählt ist.

  10. Maximieren Sie den Bereich Container, Volumes, Netzwerk, Sicherheit.

  11. Wählen Sie auf dem Tab Container den Tab Variablen und Secrets aus und führen Sie die folgenden Schritte aus:

    1. Klicken Sie im Bereich Umgebungsvariablen auf Variable hinzufügen.

    2. Geben Sie Folgendes in die Felder Name und Value ein:

      • DB_NAME: quickstart_db
      • DB_USER: postgres
      • DB_PASS: Das Passwort, das Sie beim Erstellen des Clusters eingegeben haben.
      • DB_PORT: 5432
      • INSTANCE_HOST: Die IP-Adresse der primären Instanz Ihres Clusters, die Sie unter IP-Adresse für die neue Instanz ermitteln gefunden haben. Geben Sie die Portnummer nicht an, z. B. auf 172.19.209.2 und nicht auf 172.19.209.2:5432.
  12. Wechseln Sie vom Tab Container zum Tab Netzwerk und führen Sie die folgenden Schritte aus:

    1. Wählen Sie das Kästchen Mit einer VPC für ausgehenden Traffic verbinden aus.

    2. Wählen Sie die Option Traffic direkt an eine VPC senden aus.

    3. Wählen Sie in der Drop-down-Liste Netzwerk den Wert default aus.

    4. Achten Sie darauf, dass in der Drop-down-Liste Subnetz der Wert default ausgewählt ist.

  13. Klicken Sie auf Erstellen , um den Cloud Run-Dienst zu erstellen.

    Nachdem der Cloud Run-Dienst bereitgestellt wurde, wird auf der Seite quickstart-service die URL der Beispielanwendung im Feld URL angezeigt.

    Die Anwendung verwendet AlloyDB als Datenspeicher.

Beispielanwendung ansehen

  1. Rufen Sie in der Google Cloud console die Seite Cloud Run auf.

    Zu Cloud Run

  2. Klicken Sie auf der Seite quickstart-service auf In die Zwischenablage kopieren, um die Anwendungs-URL zu kopieren.

  3. Fügen Sie die kopierte Anwendungs-URL in einen neuen Browsertab ein und drücken Sie die Eingabetaste.

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:

Cluster bereinigen

  1. Rufen Sie in der Google Cloud console die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie neben dem Cluster my-cluster, den Sie löschen möchten, auf Aktionen und dann auf Löschen.

  3. Geben Sie im angezeigten Dialogfeld Cluster löschen im Feld my-cluster my-cluster ein, um zu bestätigen, dass Sie ihn löschen möchten.

  4. Klicken Sie auf Löschen.

Dienst bereinigen

  1. Rufen Sie in der Google Cloud console die Seite Cloud Run auf.

    Zu Cloud Run

  2. Klicken Sie auf das Kästchen neben dem Dienstnamen quickstart-service.

  3. Klicken Sie oben auf der Seite Cloud Run auf Löschen.

  4. Klicken Sie im angezeigten Dialogfeld quickstart-service löschen zur Bestätigung auf Löschen.

Nächste Schritte