1. Übersicht
In diesem Lab erstellen Sie eine AlloyDB-Datenbank mit einem Cloud Run-Job. Sie konfigurieren den Zugriff auf private Dienste und den serverlosen VPC-Zugriff, um die Verbindung zwischen dem Cloud Run-Job und der AlloyDB-Datenbank über eine private IP-Adresse zu ermöglichen.
Lerninhalte
In diesem Lab lernen Sie Folgendes:
- AlloyDB-Cluster und ‑Instanz einrichten
- Cloud Run-Job bereitstellen, um eine AlloyDB-Datenbank zu erstellen
2. Einrichtung und Anforderungen
Cloud-Projekt einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Er ist ein String, der nicht von Google APIs verwendet wird. Sie können ihn jederzeit aktualisieren.
- Die Projekt-ID muss für alle Google Cloud-Projekte eindeutig sein und ist unveränderlich. Sie kann also nicht mehr geändert werden, nachdem sie festgelegt wurde. In der Cloud Console wird automatisch ein eindeutiger String generiert. In den meisten Codelabs müssen Sie auf die Projekt-ID verweisen. Sie wird in der Regel als
PROJECT_IDangegeben. Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie eine eigene ID verwenden und prüfen, ob sie verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Es gibt noch einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/APIs zu verwenden. Die Durchführung dieses Codelabs sollte nicht viel kosten, wenn überhaupt. Wenn Sie Ressourcen herunterfahren möchten, damit Ihnen nach dieser Anleitung keine Kosten mehr in Rechnung gestellt werden, können Sie die erstellten Ressourcen oder das gesamte Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testprogramm im Wert von 300 $ teilnehmen.
Umgebung einrichten
Klicken Sie rechts neben der Suchleiste auf das Symbol, um Cloud Shell zu aktivieren.

Wenn Sie Dienst-APIs aktivieren möchten, kopieren Sie den folgenden Befehl und fügen Sie ihn in das Terminal ein. Drücken Sie dann die Eingabetaste:
gcloud services enable \
alloydb.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
vpcaccess.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
--quiet
Legen Sie Umgebungsvariablen fest:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
export DB_DATABASE=test
export DB_USER=postgres
export DB_PASSWORD=password123
export REGION=us-central1
export CLUSTER=test-cluster
export INSTANCE=test-instance
export VPC_CONNECTOR=vpcconnector
3. AlloyDB-Cluster einrichten und erstellen
Legen Sie die erforderlichen Berechtigungen für die Einrichtung fest. So kann der Cloud Run-Job eine Verbindung zur AlloyDB-Datenbank herstellen.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
Zugriff auf private Dienste konfigurieren
Der Zugriff auf private Dienste wird als eine VPC-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und dem zugrunde liegenden VPC-Netzwerk von Google Cloud implementiert, in dem sich Ihre AlloyDB-Ressourcen (Cluster und Instanzen) befinden. Über die private Verbindung können Ressourcen in Ihrem VPC-Netzwerk ausschließlich über interne IP-Adressen mit den AlloyDB-Ressourcen kommunizieren, auf die sie zugreifen. Die Ressourcen in Ihrem VPC-Netzwerk benötigen keinen Internetzugriff oder keine externen IP-Adressen, um AlloyDB-Ressourcen zu erreichen.
Wenn Sie eine Konfiguration für den Zugriff auf private Dienste in einem VPC-Netzwerk erstellen möchten, das sich im selben Cloud-Projekt wie AlloyDB befindet, führen Sie zwei Vorgänge aus:
Erstellen Sie einen zugewiesenen IP-Adressbereich im VPC-Netzwerk.
gcloud compute addresses create google-managed-services-default \
--global \
--purpose=VPC_PEERING \
--prefix-length=20 \
--network=projects/$PROJECT_ID/global/networks/default
Erstellen Sie eine private Verbindung zwischen dem VPC-Netzwerk und dem zugrunde liegenden VPC-Netzwerk von Google Cloud. Dieser Schritt dauert etwa 2 Minuten.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=google-managed-services-default \
--network=default \
--project=$PROJECT_ID
Erstellen Sie einen AlloyDB-Cluster.
gcloud beta alloydb clusters create $CLUSTER \
--password=$DB_PASSWORD \
--network=default \
--region=$REGION \
--project=$PROJECT_NAME
gcloud beta alloydb clusters describe $CLUSTER --region=$REGION
Erstellen Sie eine AlloyDB-Instanz. Dieser Schritt dauert etwa 10 Minuten.
gcloud beta alloydb instances create $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--instance-type=PRIMARY \
--cpu-count=2 \
--project=$PROJECT_NAME
gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region $REGION
Prüfen Sie den erstellten Cluster in der Cloud Console.

Speichern Sie die IP-Adresse der Datenbank in einer Variablen.
export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--format=json | jq \
--raw-output ".ipAddress")
echo "DB_HOST=$DB_HOST"
4. Cloud Run-Jobcode ansehen
Es gibt mehrere Möglichkeiten, eine AlloyDB-Datenbank zu erstellen. Eine Möglichkeit besteht darin, eine Compute Engine-VM zu erstellen, einen psql-Client zu installieren und dann eine Verbindung zur Instanz herzustellen, um eine Datenbank zu erstellen. Weitere Informationen zu diesem Ansatz finden Sie hier.
In diesem Lab erstellen Sie eine neue AlloyDB-Datenbank mit einem Cloud Run-Job.
Prüfen Sie die folgenden Dateien:
- Dockerfile: Installiert die erforderlichen Abhängigkeiten(postgresql-client)
- script.sh: Verwendet Befehlszeilenprogramme, um eine Datenbank zu erstellen
Erstellen Sie in der Cloud Shell einen neuen Ordner:
mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job
Erstellen Sie die neue Datei Dockerfile:
cat > Dockerfile <<EOF
FROM ubuntu:latest
RUN apt-get update && apt-get install -y postgresql-client && apt-get clean
COPY script.sh /
RUN chmod +x /script.sh
CMD ["/script.sh"]
ENTRYPOINT ["/bin/bash"]
EOF
Erstellen Sie die neue Datei script.sh mit dem folgenden Inhalt:
echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"
psql -h $DB_HOST -l
Ändern Sie die Berechtigung für „script.sh“:
chmod +x script.sh
5. Cloud Run-Job bereitstellen
Konfigurieren Sie den serverlosen VPC-Zugriff. So kann der Cloud Run-Job über eine interne/private IP-Adresse mit dem AlloyDB-Cluster kommunizieren. Dieser Schritt dauert etwa 2 Minuten.
gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
--region=${REGION} \
--range=10.8.0.0/28
Erstellen Sie ein Artifact Registry-Repository zum Speichern von Container-Images.
gcloud artifacts repositories create db-job-repository \
--repository-format=docker \
--location=$REGION
Erstellen Sie ein Container-Image und veröffentlichen Sie es in Artifact Registry.
gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest
Stellen Sie den Cloud Run-Job bereit.
gcloud beta run jobs create db-job \
--image=$REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest \
--set-env-vars DB_HOST=$DB_HOST \
--set-env-vars PGUSER=$DB_USER \
--set-env-vars PGPASSWORD=$DB_PASSWORD \
--set-env-vars PGDB=$DB_DATABASE \
--vpc-connector $VPC_CONNECTOR \
--region $REGION
Prüfen Sie die Flags, die zum Erstellen des Jobs verwendet wurden:
--vpc-connector – Der Cloud Run-Job verwendet den VPC-Connector, um die private IP-Adresse von AlloyDB zu erreichen.
Prüfen Sie den erstellten Job in der Cloud Console.

Führen Sie den Cloud Run-Job aus, um die Datenbank test zu erstellen.
gcloud beta run jobs execute db-job --region $REGION
Prüfen Sie die Cloud Run-Job logs in der Cloud Console.

6. Das wars!
Sie haben das Codelab abgeschlossen.
Inhalt:
- AlloyDB-Cluster und ‑Instanz erstellen
- AlloyDB-Datenbank mit einem Cloud Run-Job erstellen
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie entweder das Projekt löschen, das die Ressourcen enthält, oder das Projekt beibehalten und die einzelnen Ressourcen löschen.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.