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
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.- 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:
-
Compute-Netzwerkadministrator (
roles/compute.networkAdmin) -
AlloyDB-Administrator (
roles/alloydb.admin) -
Artifact Registry-Administrator (
roles/artifactregistry.admin) -
Cloud Run-Administrator (
roles/run.admin) -
Storage-Administrator (
roles/storage.admin) -
Cloud Build-Bearbeiter (
roles/cloudbuild.builds.editor) -
Container Analysis-Administrator (
roles/containeranalysis.admin) -
Ersteller von Dienstkonto-Token (
roles/iam.serviceAccountTokenCreator) -
Monitoring-Messwert-Autor (
roles/monitoring.metricWriter) -
Dev Ops (
roles/iam.devOps)
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
Wenn Sie sich nicht auf der Seite Übersicht Ihres neu erstellten Clusters befinden, rufen Sie in der Google Cloud console die Seite Cluster auf.
Klicken Sie auf den Clusternamen
my-cluster, um die Seite Übersicht des Clusters aufzurufen.Klicken Sie im Navigationsmenü auf AlloyDB Studio.
Wählen Sie auf der Seite In AlloyDB Studio anmelden in der Liste Datenbank die Option
postgresaus.Wählen Sie in der Drop-down-Liste Nutzer die Option
postgresaus.Geben Sie im Feld Passwort das Passwort ein, das Sie unter Cluster und primäre Instanz erstellen erstellt haben.
Klicken Sie auf Authentifizieren. Im Bereich Explorer wird eine Liste der Objekte in Ihrer Datenbank angezeigt.
Erstellen Sie auf dem Tab Editor 1 eine Datenbank:
CREATE DATABASE quickstart_db;Klicken Sie auf Ausführen. Warten Sie, bis im Bereich Ergebnisse die Meldung
Statement executed successfullyangezeigt wird.
Projekt-ID ermitteln
Rufen Sie in der Google Cloud console die Seite Dashboard auf.
Suchen Sie die Projekt-ID auf der Karte Projektinformationen.
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
Öffnen Sie in der Google Cloud console Cloud Shell.
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_cloneErstellen 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_IDErsetzen Sie
PROJECT_IDdurch die ID Ihres Projekts.Klicken Sie im Dialogfeld Cloud Shell autorisieren auf Autorisieren. Diese Aufforderung wird nicht angezeigt, wenn Sie diesen Schritt bereits ausgeführt haben.
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_IDErsetzen Sie
PROJECT_IDdurch die ID Ihres Projekts.Der Beispielcode der Anwendung für diese Kurzanleitung befindet sich im
examples/goVerzeichnis desGoogleCloudPlatform/alloydb-auth-proxyGitHub-Repositorys. Mit dem Befehlcloudshell_openim vorherigen Schritt wird dieses Repository automatisch geklont und das richtige Verzeichnis für Sie geöffnet.
IP-Adresse für die neue Instanz ermitteln
Rufen Sie in der Google Cloud console die Seite Cluster auf.
Suchen Sie in der Tabelle die Zeile, deren Ressourcenname
my-primaryist.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
Rufen Sie in der Google Cloud console die Seite Cloud Run auf.
Klicken Sie auf dem Tab Dienste auf Container bereitstellen.
Wählen Sie auf der Seite Dienst erstellen die Option Eine Überarbeitung aus einem vorhandenen Container-Image bereitstellen aus.
Klicken Sie im Feld Container-Image-URL auf Auswählen.
Führen Sie im Bereich Container-Image auswählen die folgenden Schritte aus:
- Wählen Sie den Tab Artifact Registry aus.
- Maximieren Sie
us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy. - Maximieren Sie
run-sql. - Wählen Sie das aktuelle Image aus.
- Klicken Sie auf Auswählen.
Geben Sie im Feld Name des Dienstes
quickstart-serviceein.Achten Sie darauf, dass in der Liste Region standardmäßig
us-central1 (Iowa)ausgewählt ist.Wählen Sie im Bereich Authentifizierung die Option Öffentlichen Zugriff zulassen aus.
Achten Sie darauf, dass im Bereich CPU-Zuweisung und Preise die Option CPU wird nur während der Anfrageverarbeitung zugewiesen ausgewählt ist.
Maximieren Sie den Bereich Container, Volumes, Netzwerk, Sicherheit.
Wählen Sie auf dem Tab Container den Tab Variablen und Secrets aus und führen Sie die folgenden Schritte aus:
Klicken Sie im Bereich Umgebungsvariablen auf Variable hinzufügen.
Geben Sie Folgendes in die Felder
NameundValueein:DB_NAME:quickstart_dbDB_USER:postgresDB_PASS: Das Passwort, das Sie beim Erstellen des Clusters eingegeben haben.DB_PORT:5432INSTANCE_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. auf172.19.209.2und nicht auf172.19.209.2:5432.
Wechseln Sie vom Tab Container zum Tab Netzwerk und führen Sie die folgenden Schritte aus:
Wählen Sie das Kästchen Mit einer VPC für ausgehenden Traffic verbinden aus.
Wählen Sie die Option Traffic direkt an eine VPC senden aus.
Wählen Sie in der Drop-down-Liste Netzwerk den Wert
defaultaus.Achten Sie darauf, dass in der Drop-down-Liste Subnetz der Wert
defaultausgewählt ist.
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
Rufen Sie in der Google Cloud console die Seite Cloud Run auf.
Klicken Sie auf der Seite quickstart-service auf content_copy In die Zwischenablage kopieren, um die Anwendungs-URL zu kopieren.
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
Rufen Sie in der Google Cloud console die Seite Cluster auf.
Klicken Sie neben dem Cluster
my-cluster, den Sie löschen möchten, auf more_vert Aktionen und dann auf delete Löschen.Geben Sie im angezeigten Dialogfeld Cluster löschen im Feld my-cluster
my-clusterein, um zu bestätigen, dass Sie ihn löschen möchten.Klicken Sie auf Löschen.
Dienst bereinigen
Rufen Sie in der Google Cloud console die Seite Cloud Run auf.
Klicken Sie auf das Kästchen neben dem Dienstnamen
quickstart-service.Klicken Sie oben auf der Seite Cloud Run auf delete Löschen.
Klicken Sie im angezeigten Dialogfeld quickstart-service löschen zur Bestätigung auf Löschen.