Anwendung aus vorhandenen Ressourcen erstellen
In dieser Kurzanleitung erfahren Sie, wie Sie vorhandene Google Cloud Ressourcen in einer App Hub-Anwendung organisieren, indem Sie sie als Dienste registrieren. Zuerst stellen Sie Beispielkomponenten bereit, mit denen Sie dann eine globale Webanwendung in App Hub definieren.
Diese Kurzanleitung richtet sich an Nutzer, die ihre vorhandene Infrastruktur verwenden möchten, um durch das Gruppieren von Google Cloud Ressourcen in logischen Anwendungen mehr Transparenz und operative Kontrolle zu erhalten.
Hinweis
Führen Sie vor Beginn dieser Kurzanleitung die folgenden Schritte aus:
Wählen Sie Ihr Anwendungs-Setup-Modell aus. In diesem Schnellstart wird davon ausgegangen, dass Sie eine Grenze zur Anwendungsverwaltung definiert haben. Außerdem wird eine Anwendung mit dem Verwaltungsprojekt erstellt. Weitere Informationen zur Ressourcenkonfiguration finden Sie im App Hub-Ressourcenmodell.
Notieren Sie sich die Projekt-ID des Verwaltungsprojekts, die in diesem Dokument verwendet wird. Weitere Informationen finden Sie unter Projektname, ‑nummer und ‑ID ermitteln.
Prüfen Sie, ob die folgenden APIs im Verwaltungsprojekt aktiviert sind. Wenn Sie ein Verwaltungsprojekt einrichten, werden die meisten APIs, die Sie für diese Kurzanleitung benötigen, automatisch aktiviert.
- Compute Engine API (
compute.googleapis.com) - Infrastructure Manager API (
config.googleapis.com)
- Compute Engine API (
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Verwaltungsprojekt zuzuweisen, damit Sie die erforderlichen APIs aktivieren und eine Beispielanwendung aus vorhandenen Ressourcen erstellen können:
-
So aktivieren Sie die erforderlichen APIs:
Service Usage-Administrator (
roles/serviceusage.serviceUsageAdmin) -
So erhalten Sie vollen Zugriff auf die erforderlichen Dienste:
- App Hub-Administrator (
roles/apphub.admin) - Cloud Run-Administrator (
roles/run.admin) - Compute-Administrator (
roles/compute.admin) - Cloud Infrastructure Manager-Administrator (
roles/config.admin)
- App Hub-Administrator (
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.
Beispielkomponenten für die Anwendung bereitstellen
Sie müssen zuerst eine Reihe von Beispielressourcen Google Cloud bereitstellen, die Sie später verwenden, um eine globale Anwendung in App Hub zu definieren, indem Sie sie als Anwendungskomponenten registrieren:
- Ein Cloud Run-Dienst, der als Backend-Dienst der Anwendung fungiert.
- Ein globaler externer Application Load Balancer, der als Frontend-Dienst der Anwendung fungiert, indem er Traffic als Weiterleitungsregel an den Cloud Run-Dienst weiterleitet.
So stellen Sie diese Ressourcen bereit:
gcloud
Legen Sie die erforderlichen Umgebungsvariablen fest:
export PROJECT_ID="PROJECT_ID" export REGION="REGION"Ersetzen Sie Folgendes:
PROJECT_ID: die ID Ihres Verwaltungsprojekts.REGION: Die von Ihnen ausgewählte Region für Ressourcen, z. B.us-central1.
Beispiel-Cloud Run-Dienst mit dem Namen
hello-runbereitstellen:gcloud run deploy hello-run \ --image=us-docker.pkg.dev/cloudrun/container/hello \ --allow-unauthenticated \ --region=${REGION} \ --project=${PROJECT_ID}Globalen externen Application Load Balancer erstellen Dieser Vorgang umfasst folgende Schritte:
Erstellen Sie eine serverlose Netzwerk-Endpunktgruppe (NEG) mit dem Namen
hello-run-neg:gcloud compute network-endpoint-groups create hello-run-neg \ --region=${REGION} \ --network-endpoint-type=serverless \ --cloud-run-service=hello-run \ --project=${PROJECT_ID}Die NEG fungiert als Backend für den Load-Balancer und verweist auf Ihren
hello-run-Dienst.Erstellen Sie einen Backend-Dienst, um zu verwalten, wie Traffic an die NEG verteilt wird:
gcloud compute backend-services create hello-backend-service \ --global \ --load-balancing-scheme=EXTERNAL_MANAGED \ --project=${PROJECT_ID}Fügen Sie dem Backend-Dienst das serverlose NEG hinzu:
gcloud compute backend-services add-backend hello-backend-service \ --global \ --network-endpoint-group=hello-run-neg \ --network-endpoint-group-region=${REGION} \ --project=${PROJECT_ID}Erstellen Sie eine URL-Zuordnung, um eingehende Anfragen an den Backend-Dienst weiterzuleiten:
gcloud compute url-maps create hello-url-map \ --default-service=hello-backend-service \ --project=${PROJECT_ID}Erstellen Sie einen HTTP-Proxy, um Anfragen zu empfangen und sie mithilfe der URL-Zuordnung weiterzuleiten:
gcloud compute target-http-proxies create hello-http-proxy \ --url-map=hello-url-map \ --project=${PROJECT_ID}So erstellen Sie eine globale Weiterleitungsregel:
gcloud compute forwarding-rules create hello-forwarding-rule \ --global \ --load-balancing-scheme=EXTERNAL_MANAGED \ --target-http-proxy=hello-http-proxy \ --ports=80 \ --project=${PROJECT_ID}Diese Weiterleitungsregel stellt eine öffentliche IP-Adresse und einen Port zum Verarbeiten eingehender Nutzeranfragen bereit und leitet sie an den Proxy weiter.
Terraform
Erstellen Sie eine
main.tf-Datei und fügen Sie den folgenden Code hinzu:# Provider configuration provider "google" { project = "PROJECT_ID" } # Cloud Run service resource "google_cloud_run_v2_service" "default" { name = "hello-run" location = "REGION" template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } } # Allow unauthenticated access to the Cloud Run service resource "google_cloud_run_v2_service_iam_member" "noauth" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "allUsers" }Ersetzen Sie Folgendes:
PROJECT_ID: die ID Ihres Verwaltungsprojekts.REGION: Die von Ihnen ausgewählte Region für Ressourcen, z. B.us-central1.
In diesem Block wird der Google Cloud Anbieter definiert und ein öffentlicher Cloud Run-Dienst mit einem
hello-world-Beispielcontainer-Image konfiguriert. Sie enthält auch eine IAM-Richtlinienbindung, um nicht authentifizierte Aufrufe zuzulassen, wodurch der Dienst öffentlich zugänglich wird.Fügen Sie Ihrer
main.tf-Datei den folgenden Code hinzu, um den globalen externen Application Load Balancer zu erstellen:# Serverless NEG for the Cloud Run service resource "google_compute_region_network_endpoint_group" "serverless_neg" { name = "hello-run-neg" network_endpoint_type = "SERVERLESS" region =