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:

  1. 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.

  2. Notieren Sie sich die Projekt-ID des Verwaltungsprojekts, die in diesem Dokument verwendet wird. Weitere Informationen finden Sie unter Projektname, ‑nummer und ‑ID ermitteln.

  3. 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)

    APIs aktivieren

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:

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:

So stellen Sie diese Ressourcen bereit:

gcloud

  1. 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.
  2. Beispiel-Cloud Run-Dienst mit dem Namen hello-run bereitstellen:

    gcloud run deploy hello-run \
        --image=us-docker.pkg.dev/cloudrun/container/hello \
        --allow-unauthenticated \
        --region=${REGION} \
        --project=${PROJECT_ID}
    
  3. Globalen externen Application Load Balancer erstellen Dieser Vorgang umfasst folgende Schritte:

    1. 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.

    2. 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}
      
    3. 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}
      
    4. 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}
      
    5. 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}
      
    6. 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

  1. 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.

  2. 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                =