Diese Anleitung richtet sich an Personen, die App Hub einrichten und verwalten. Sie sollten Erfahrung mit Cloud Load Balancing haben.
Lernziele
In diesem Anleitung werden die folgenden Aufgaben erläutert:- Google Cloud-Projekt erstellen oder auswählen. Dieses Projekt ist Ihr App Hub-Hostprojekt.
Verwenden Sie Terraform, um ein VPC-Netzwerk, einen regionalen externen Application Load Balancer und eine MIG bereitzustellen, die den Endpunkt des Load-Balancers ist. Der regionale externe Application Load Balancer enthält die folgenden Ressourcen:
- HTTP-Systemdiagnose
- Weiterleitungsregel
- URL-Zuordnung
- Ziel-Proxy
- Backend-Dienst mit einer verwalteten Instanzgruppe als Backend
- SSL-Zertifikat (für HTTPS)
Nur die Weiterleitungsregel, die URL-Zuordnung, der Back-End-Dienst und die MIG sind im App Hub als erkannte Ressourcen verfügbar. Weitere Informationen finden Sie unter Konzepte und Datenmodell.
Geben Sie die entsprechenden Rollen und Berechtigungen für das Hostprojekt an.
Hängen Sie das App Hub-Hostprojekt als Dienstprojekt an.
Erstellen Sie eine Anwendung im App Hub-Hostprojekt.
Informieren Sie sich über die Infrastrukturressourcen als App Hub-Dienste und -Arbeitslasten.
Registrieren Sie Dienste und eine Arbeitslast aus dem Dienstprojekt in der Anwendung und weisen Sie Attribute zu.
Sehen Sie sich Details zu den registrierten Diensten und Arbeitslasten im App Hub an.
Kosten
Eine Schätzung der Kosten der Google Cloud-Ressourcen, die von der verwalteten VM-Lösung mit Load-Balancing verwendet werden, finden Sie in der vorab berechneten Schätzung im Google Cloud-Preisrechner.
Verwenden Sie die vorab berechnete Schätzung als Ausgangspunkt, um die Kosten Ihrer Bereitstellung zu berechnen. Sie können die Schätzung ändern, um alle Konfigurationsänderungen widerzuspiegeln, die Sie für die in der Lösung verwendeten Ressourcen vornehmen möchten.
Die vorab berechnete Schätzung basiert auf Annahmen für bestimmte Faktoren, darunter:
- Die Google Cloud-Standorte, an denen die Ressourcen bereitgestellt werden.
- Die Zeitdauer der Verwendung der Ressourcen.
Weitere Informationen zu den Kosten für App Hub finden Sie auf der Seite Preise.
Hinweise
Wenn Sie der Projektersteller sind, wird Ihnen die einfache "Owner" Rolle (roles/owner
) zugewiesen. Standardmäßig enthält diese IAM-Rolle (Identity and Access Management) die Berechtigungen, die für den vollständigen Zugriff auf die meisten Google Cloud-Ressourcen erforderlich sind.
Wenn Sie nicht der Projektersteller sind, müssen dem entsprechenden Hauptkonto die erforderlichen Berechtigungen für das Projekt gewährt werden. Ein Hauptkonto kann beispielsweise ein Google-Konto (für Endnutzer) oder ein Dienstkonto (für Anwendungen und Arbeitslasten) sein.
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Anleitung benötigen:
-
Service Usage-Administrator (
roles/serviceusage.services.enable
) -
Dienstkontoadministrator (
roles/iam.serviceAccounts.create
) -
Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin
) -
Cloud Infrastructure Manager (
roles/config.admin
) -
App Hub-Administrator (
roles/apphub.admin
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Console
Rufen Sie in der Google Cloud Console die Seite für die Projektauswahl auf.
Wählen Sie ein Google Cloud-Projekt aus oder erstellen Sie eines als App Hub-Hostprojekt.
-
Aktivieren Sie die erforderlichen APIs.
gcloud
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Achten Sie darauf, dass die neueste Version der Google Cloud CLI installiert ist. Führen Sie in Cloud Shell den folgenden Befehl aus:
gcloud components update
Erstellen Sie ein neues Projekt (
HOST_PROJECT_ID
) oder wählen Sie eines aus, das als Hostprojekt für App Hub festgelegt werden soll.Erstellen Sie ein Google Cloud-Projekt:
gcloud projects create HOST_PROJECT_ID
Wählen Sie das von Ihnen erstellte Google Cloud-Projekt aus:
gcloud config set project HOST_PROJECT_ID
Aktivieren Sie die APIs:
gcloud services enable apphub.googleapis.com \ cloudresourcemanager.googleapis.com \ compute.googleapis.com \ config.googleapis.com \ serviceusage.googleapis.com
Umgebung vorbereiten
Damit Sie diese Lösung mit minimalem Aufwand bereitstellen können, wird in GitHub eine Terraform-Konfiguration bereitgestellt. Die Terraform-Konfiguration definiert alle Google Cloud-Ressourcen, die für die Lösung erforderlich sind. Laden Sie die Terraform-Konfiguration von GitHub herunter, passen Sie den Code nach Bedarf an und stellen Sie die Lösung dann über die Terraform-Befehlszeile bereit. Nachdem Sie die Lösung bereitgestellt haben, können Sie sie weiterhin mit Terraform verwalten.
Im Folgenden sehen Sie den Ablauf der Anfrageverarbeitung der Topologie, die von der verwalteten VM-Lösung mit Load-Balancing bereitgestellt wird.
Der Nutzer sendet eine Anfrage an die Anwendung, die auf der Compute Engine bereitgestellt ist. Cloud Load Balancing erhält diese Anfrage.
Cloud Load Balancing leitet den Traffic mithilfe von Informationen in der Weiterleitungsregel, der URL-Zuordnung und dem Back-End-Dienst an die von Compute Engine verwaltete Instanzgruppe weiter.
Terraform-Client einrichten
Sie können Terraform entweder in Cloud Shell oder auf Ihrem lokalen Host ausführen. In dieser Anleitung wird beschrieben, wie Sie Terraform in Cloud Shell ausführen. Dort ist Terraform vorinstalliert und für die Authentifizierung bei Google Cloud konfiguriert.
Der Terraform-Code für diese Lösung ist in einem GitHub-Repository verfügbar.
Klonen Sie in Cloud Shell das GitHub-Repository in Cloud Shell.
git clone https://github.com/terraform-google-modules/terraform-docs-samples
Prüfen Sie in Cloud Shell, ob das aktuelle Arbeitsverzeichnis
terraform-docs-samples/lb/regional_external_http_load_balancer
ist. Dies ist das Verzeichnis, das die Terraform-Konfigurationsdateien für die Lösung enthält. Wenn Sie in dieses Verzeichnis wechseln müssen, führen Sie den folgenden Befehl aus:cd terraform-docs-samples/lb/regional_external_http_load_balancer
Initialisieren Sie Terraform mit dem folgenden Befehl:
terraform init
Warten Sie, bis folgende Meldung angezeigt wird:
Terraform has been successfully initialized!
Terraform-Konfiguration validieren und prüfen
Prüfen Sie, ob das aktuelle Arbeitsverzeichnis
terraform-docs-samples/lb/regional_external_http_load_balancer
ist. Ist dies nicht der Fall, wechseln Sie zu diesem Verzeichnis.Prüfen Sie, ob die Terraform-Konfiguration Fehler enthält:
terraform validate
Wenn der Befehl einen Fehler zurückgibt, nehmen Sie die erforderlichen Korrekturen in der Konfiguration vor und führen Sie den Befehl
terraform validate
noch einmal aus. Wiederholen Sie diesen Schritt, bis der Befehl die folgende Meldung zurückgibt:Success! The configuration is valid.
Sehen Sie sich die Ressourcen an, die in der Konfiguration definiert sind:
terraform plan
Die Ausgabe des Befehls
terraform plan
ist eine Liste der Ressourcen, die Terraform beim Anwenden der Konfiguration bereitstellt.Wenn Sie Änderungen vornehmen möchten, bearbeiten Sie die Konfiguration und führen Sie dann die Befehle
terraform validate
undterraform plan
noch einmal aus.
Ressourcen bereitstellen
Wenn keine weiteren Änderungen an der Terraform-Konfiguration erforderlich sind, stellen Sie die Ressourcen bereit.
Prüfen Sie, ob das aktuelle Arbeitsverzeichnis
terraform-docs-samples/lb/regional_external_http_load_balancer
ist. Ist dies nicht der Fall, wechseln Sie zu diesem Verzeichnis.Wenden Sie die Terraform-Konfiguration an:
terraform apply
Terraform zeigt eine Liste der Ressourcen an, die erstellt werden.
Wenn Sie aufgefordert werden, die Aktionen auszuführen, geben Sie
yes
ein.In Terraform werden Nachrichten angezeigt, die den Fortschritt der Bereitstellung anzeigen.
Wenn die Bereitstellung nicht abgeschlossen werden kann, zeigt Terraform die Fehler an, die den Fehler verursacht haben. Prüfen Sie die Fehlermeldungen und aktualisieren Sie die Konfiguration, um die Fehler zu beheben. Führen Sie den Befehl
terraform apply
dann noch einmal aus.Nachdem alle Ressourcen erstellt wurden, zeigt Terraform die folgende Meldung an:
Apply complete!
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
Cloud Load Balancing verteilt den Traffic auf die Weiterleitungsregel, die URL-Zuordnung, den Back-End-Dienst und eine Compute Engine-MIG. Der Back-End-Dienst, die URL-Zuordnung und die Weiterleitungsregeln werden im App Hub-Hostprojekt zu erkannten Diensten. Die Compute Engine-MIG wird zu einer erkannten Arbeitslast im App Hub-Hostprojekt.
Wenn Sie die Lösung nicht mehr benötigen, können Sie die Bereitstellung löschen, um weitere Kosten für die Google Cloud-Ressourcen zu vermeiden. Weitere Informationen finden Sie unter Bereitstellung löschen.
IAM-Berechtigungen gewähren
Geben Sie die entsprechenden IAM-Rollen und -Berechtigungen für das App Hub-Hostprojekt an.
Console
Bitten Sie Ihren Administrator, Ihnen die erforderlichen IAM-Rollen für Ihr Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Anleitung benötigen:
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie auf
Zugriff gewähren. Der Bereich Zugriff gewähren wird geöffnet.Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse der Person ein, die App Hub verwalten wird. Das ist die Rolle App Hub-Administrator im Hostprojekt.
Klicken Sie auf Rolle auswählen und geben Sie im Feld Filter
App Hub
ein.Wählen Sie die Rolle App Hub Admin (App Hub-Administrator) aus und klicken Sie auf Save (Speichern).
gcloud
Wiederholen Sie den folgenden Befehl, um die Rollen Personen zuzuweisen, die App Hub verwalten. Dazu ersetzen Sie die IAM-Rollen nach Bedarf.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Ersetzen Sie
HOST_PROJECT_ADMIN
durch den Nutzer, der im Hostprojekt die Rolle „App Hub Admin“ hat. Dieser Wert hat das Formatusername@yourdomain
, z. B.robert.smith@example.com
.Gewähren Sie den Personen, die App Hub verwalten, im Dienstprojekt die Rolle „App Hub-Administrator“. Er muss die Rolle „App Hub Admin“ haben, um dem Hostprojekt Dienstprojekte hinzuzufügen. Sie benötigen für jedes Dienstprojekt mindestens eine Person mit dieser Rolle. In diesem Beispiel fungiert das Hostprojekt als Dienstprojekt.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Ersetzen Sie
SERVICE_PROJECT_ID
durch den Namen von HOST_PROJECT_ID.
Dienstprojekt anhängen
Hängen Sie das Hostprojekt, in dem Sie die Ressourcen bereitgestellt haben, als Dienstprojekt an.
Console
Rufen Sie in der Google Cloud Console die Seite Einstellungen von App Hub auf.
Klicken Sie auf der Seite Einstellungen auf Projekte anhängen.
Suchen Sie im angezeigten Bereich in der angezeigten Liste nach Projekten und klicken Sie das Kästchen für das Hostprojekt an.
Klicken Sie auf Auswählen. In der Tabelle Angehängte Dienstprojekte wird das ausgewählte Hostprojekt als Dienstprojekt angezeigt.
Klicken Sie auf Schließen.
gcloud
Fügen Sie dem App Hub-Hostprojekt Ihr Hostprojekt als Dienstprojekt hinzu.
gcloud apphub service-projects add HOST_PROJECT_ID \ --project=HOST_PROJECT_ID
Anwendung erstellen
Erstellen Sie eine Anwendung als Container für Ihre Dienste und Arbeitslasten.
Console
- Achten Sie darauf, dass Sie sich im Hostprojekt befinden.
Rufen Sie in der Google Cloud Console die Seite Anwendungen in App Hub auf.
Klicken Sie auf Anwendung erstellen. Der Bereich Create Application (Anwendung erstellen) wird angezeigt.
Wählen Sie in der Liste Region die Option us-west1 aus.
Geben Sie im Feld Anwendungsname den Wert
tutorial-application
ein.Klicken Sie auf Weiter.
Geben Sie im Abschnitt Add Attribute (Attribute hinzufügen) einen Anzeigenamen (
sample-application
) ein.Wählen Sie in der Liste Wichtigkeit die Option Hoch aus. Die Wichtigkeit gibt an, wie wichtig eine Anwendung, ein Dienst oder eine Arbeitslast für Ihre Geschäftsvorgänge ist.
Wählen Sie im Feld Umgebung die Option Produktion aus, um die Phase des Softwarelebenszyklus anzugeben.
Klicken Sie auf Weiter.
Geben Sie im Abschnitt Inhaber hinzufügen die folgenden Informationen für Entwicklerinhaber, Operator-Inhaber und Geschäftsinhaber ein. Wenn Sie einen Anzeigenamen hinzufügen, müssen Sie die E-Mail-Adresse des Inhabers eingeben.
- Geben Sie den Anzeigenamen eines Inhabers ein.
- Geben Sie die E-Mail-Adresse des Inhabers ein. Dieser Wert muss das Format
username@yourdomain
haben, z. B.222larabrown@gmail.com
.
Wiederholen Sie diese Schritte für jeden Entwickler, Betreiber und Geschäftsinhaber.
Klicken Sie auf Erstellen.
Die neue Anwendung wird erstellt und auf der Seite Anwendungen aufgeführt.
gcloud
Wählen Sie das erstellte Hostprojekt aus:
gcloud config set project HOST_PROJECT_ID
Erstellen Sie eine neue Anwendung mit dem Namen
tutorial-application
in der Regionus-west1
und geben Sie ihr den AnzeigenamenTutorial
:gcloud apphub applications create tutorial-application \ --display-name='Tutorial' \ --scope-type=REGIONAL \ --project=HOST_PROJECT_ID \ --location=us-west1
Listen Sie die Anwendungen in Ihrem Hostprojekt auf.
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=us-west1
Die Ausgabe sollte in etwa so aussehen:
ID: tutorial-application DISPLAY_NAME: Tutorial CREATE_TIME: 2023-10-31T18:33:48
Aktualisieren Sie Ihre Anwendung mit den Attributen
criticality-type
,environment-type
und Inhaber:gcloud apphub applications update tutorial-application \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=HOST_PROJECT_ID \ --location=us-west1
Ersetzen Sie Folgendes:
DISPLAY-NAME-DEVELOPER
,DISPLAY-NAME-OPERATOR
undDISPLAY-NAME-BUSINESS
: Anzeigenamen der Entwickler, Operatoren bzw. Geschäftsinhaber.EMAIL-NAME-DEVELOPER
,EMAIL-NAME-OPERATOR
undEMAIL-NAME-BUSINESS
: E-Mail-Adressen des Entwicklers, Operators bzw. Geschäftsinhabers. Diese Werte müssen das Formatusername@yourdomain
haben, z. B.222larabrown@gmail.com
.
Hinweise:
criticality-type
: gibt an, wie wichtig eine Anwendung, ein Dienst oder eine Arbeitslast für Ihren Geschäftsbetrieb ist.environment-type
gibt die Phasen des Softwarelebenszyklus an.
Rufen Sie Details zu der von Ihnen erstellten Anwendung ab.
gcloud apphub applications describe tutorial-application \ --project=HOST_PROJECT_ID \ --location=us-west1
Der Befehl gibt Informationen im YAML-Format zurück, die in etwa so aussehen:
attributes: businessOwners: – displayName: [DISPLAY-NAME-BUSINESS] email: [EMAIL-BUSINESS] criticality: type: HIGH developerOwners: – displayName: [DISPLAY-NAME-DEVELOPER] email: [EMAIL-DEVELOPER] environment: type: PRODUCTION operatorOwners: – displayName: [DISPLAY-NAME-OPERATOR] email: [EMAIL-OPERATOR] createTime: '2023-10-31T18:33:48.199394108Z' displayName: Tutorial name: projects/HOST_PROJECT_ID/locations/us-west1/applications/tutorial-application scope: type: REGIONAL state: ACTIVE uid: 9d991a9d-5d8a-4c0d-b5fd-85e39fb58c73 updateTime: '2023-10-31T18:33:48.343303819Z'
Dienste und eine Arbeitslast registrieren
Durch das Registrieren von Diensten und Arbeitslasten werden sie einer Anwendung hinzugefügt.
Console
Rufen Sie in der Google Cloud Console die Seite Anwendungen in App Hub auf.
Klicken Sie auf den Namen Ihrer Anwendung: sample-application. Der Tab Dienste und Arbeitslasten wird mit einer Liste der registrierten Dienste und Arbeitslasten angezeigt, die sich in Ihren Dienstprojekten befinden.
So registrieren Sie einen Dienst:
- Klicken Sie auf dem Tab Dienste und Arbeitslasten auf Dienst/Arbeitslast registrieren.
- Wählen Sie im Bereich Dienst oder Arbeitslast registrieren im Abschnitt Dienst oder Arbeitslast auswählen den Namen des Dienstes l7-xlb-backend-service aus und klicken Sie auf Weiter.
- Geben Sie im Abschnitt Attribute hinzufügen den Namen des Attributs ein:
sample-service-backend
. - Geben Sie als Anzeigename
service-backend
ein. - Wählen Sie in der Liste Wichtigkeit die Option Hoch aus, um die Wichtigkeit der Anwendung anzugeben.
- Wählen Sie im Feld Umgebung die Option Produktion aus, um die Phase des Softwarelebenszyklus anzugeben.
- Klicken Sie auf Weiter.
- Machen Sie je nach Bedarf die folgenden Angaben für Entwicklerinhaber, Operator-Inhaber und Geschäftsinhaber. Wenn Sie einen Anzeigenamen hinzufügen, müssen Sie die E-Mail-Adresse des Inhabers eingeben.
- Geben Sie den Anzeigenamen eines Inhabers ein.
- Geben Sie die E-Mail-Adresse des Inhabers ein. Dieser Wert muss das Format
username@yourdomain
haben, z. B.222larabrown@gmail.com
.
- Wiederholen Sie diese Schritte für jeden Entwickler, Betreiber und Geschäftsinhaber.
- Klicken Sie auf Registrieren.
Auf dem Tab Dienste und Arbeitslasten im Abschnitt Registrierte Dienste und Arbeitslasten sehen Sie den neu hinzugefügten Dienst.
Wiederholen Sie die vorherigen Schritte, um die anderen Dienste als sample-service-forwarding-rule bzw. sample-service-url-map zu registrieren.
Zum Registrieren einer Arbeitslast wiederholen Sie die vorherigen Schritte, um einen Dienst zu registrieren. Dabei gelten folgende Ausnahmen:
- Wählen Sie im Bereich Dienst oder Arbeitslast registrieren im Abschnitt Dienst oder Arbeitslast auswählen den Namen der Arbeitslast (l7-xlb-backend-example) aus und klicken Sie auf Weiter.
- Geben Sie im Abschnitt Attribute hinzufügen den Namen des Attributs ein:
sample-workload
. - Geben Sie als Anzeigename
workload-instance-group
ein.
Auf dem Tab Dienste und Arbeitslasten im Abschnitt Registrierte Dienste und Arbeitslasten sehen Sie die neu hinzugefügte Arbeitslast.
gcloud
Fügen Sie eine Person mit der Berechtigung „App Hub-Bearbeiter“ hinzu.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:APP_HUB_EDITOR' \ --role='roles/apphub.editor'
Ersetzen Sie
APP_HUB_EDITOR
durch den Nutzer, der im Hostprojekt die Rolle „App Hub-Bearbeiter“ hat. Dieser Wert hat das Formatusername@yourdomain
, z. B.robert.smith@example.com
.Listen Sie alle erkannten Dienste im Hostprojekt auf. Dieser Befehl gibt Dienste zurück, die für eine Anwendung registriert werden können.
gcloud apphub discovered-services list \ --project=HOST_PROJECT_ID \ --location=us-west1
Die Ausgabe sollte in etwa so aussehen:
ID:
71dd6fa4-5644-43ee-918f-c5fda03ffe24
SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/backendServices/l7-xlb-backend-service'} SERVICE_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'} ID:fe831ba4-ec16-4eb8-9ea4-b394fd30f561
SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/forwardingRules/l7-xlb-forwarding-rule'} SERVICE_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'} ID:637a3216-c6cc-410e-8bf9-83b7ef66a62f
SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/urlMaps/regional-l7-xlb-map'} SERVICE_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}Kopieren Sie den Dienst
ID
aus der Ausgabe, um ihn im nächsten Schritt zu verwenden, z. B.71dd6fa4-5644-43ee-918f-c5fda03ffe24
.Registrieren Sie die Dienste aus dem vorherigen Schritt bei Ihrer Anwendung. Kopieren Sie die Dienst-IDs aus dem Ausgabefeld im vorherigen Schritt.
gcloud apphub applications services create sample-service-backend \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_ID' \ --display-name='service-backend' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=us-west1
gcloud apphub applications services create sample-service-forwarding-rule \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/FORWARDING_RULE_SERVICE_ID' \ --display-name='service-forwarding-rule' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=us-west1
gcloud apphub applications services create sample-service-url-map \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/URL_MAP_SERVICE_ID' \ --display-name='url-map' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=us-west1
Ersetzen Sie Folgendes:
BACKEND_SERVICE_ID
: der Dienst-ID
des Back-End-Dienstes, den Sie registrieren möchten.FORWARDING_RULE_SERVICE_ID
: der Dienst-ID
der Weiterleitungsregel, die Sie registrieren möchten.URL_MAP_SERVICE_ID
: der Dienst-ID
der URL-Zuordnung, die Sie registrieren möchten.
Hiermit werden alle registrierten Dienste in der Anwendung aufgelistet.
gcloud apphub applications services list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=us-west1
Die Ausgabe sollte in etwa so aussehen:
ID: sample-service-backend DISPLAY_NAME: service-backend SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/backendServices/l7-xlb-backend-service'} CREATE_TIME: 2024-02-13T00:31:45 ID: sample-service-forwarding-rule DISPLAY_NAME: service-forwarding-rule SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/forwardingRules/l7-xlb-forwarding-rule'} CREATE_TIME: 2024-02-13T00:31:45 ID: sample-service-url-map DISPLAY_NAME: url-map SERVICE_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/urlMaps/regional-l7-xlb-map'} CREATE_TIME: 2024-02-13T00:31:45
Registriert, aber getrennte Dienste werden durch einen leeren Wert im Feld
SERVICE_REFERENCE
gekennzeichnet. Weitere Informationen zu den Registrierungsstatus finden Sie unter Attribute und Attribute von App Hub.Listen Sie alle erkannten Arbeitslasten im Hostprojekt auf. Dieser Befehl gibt Arbeitslasten zurück, die für eine Anwendung registriert werden können.
gcloud apphub discovered-workloads list \ --project=HOST_PROJECT_ID \ --location=us-west1
Die Ausgabe sollte in etwa so aussehen:
ID: c9c08669-0fd2-4f7c-b2b1-2cf3c57662c2 WORKLOAD_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/zones/us-west1-a/instanceGroups/l7-xlb-backend-example'} WORKLOAD_PROPERTIES: {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1', 'zone': 'us-west1-a'}
Kopieren Sie die Arbeitslast-ID aus der Ausgabe, um sie im nächsten Schritt zu verwenden.
Registrieren Sie die Arbeitslast aus dem vorherigen Schritt bei Ihrer Anwendung als
sample-workload
. Kopieren Sie die Arbeitslast-ID aus dem Ausgabefeld im vorherigen Schritt.gcloud apphub applications workloads create sample-workload \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/WORKLOAD_ID' \ --display-name='workload-instance-group' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=us-west1
Ersetzen Sie
WORKLOAD_ID
durch die ID der Arbeitslast, die Sie registrieren möchten.Listen Sie alle registrierten Arbeitslasten in der Anwendung auf.
gcloud apphub applications workloads list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=us-west1
Die Ausgabe sollte in etwa so aussehen:
ID: sample-workload DISPLAY_NAME: workload-instance-group WORKLOAD_REFERENCE: {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/zones/us-west1-a/instanceGroups/l7-xlb-backend-example'} CREATE_TIME: 2024-02-13T00:31:45
Registrierte, aber getrennte Arbeitslasten werden durch einen leeren Wert im Feld
WORKLOAD_REFERENCE
gekennzeichnet. Weitere Informationen zu den Registrierungsstatus finden Sie unter Attribute und Attribute von App Hub.
Alle Dienste und Arbeitslasten ansehen
Sie können Details zu den Diensten und Arbeitslasten aus allen Dienstprojekten ansehen, die an das Hostprojekt angehängt sind.
Rufen Sie in der Google Cloud Console die Seite Dienste und Arbeitslasten für App Hub auf.
Wählen Sie in der Liste Region die Option us-west1 aus. Die Arbeitslast workload-instance-group wird mit Details wie App Hub Type, Criticality und Registered to angezeigt.
So filtern Sie die Dienste oder Arbeitslasten anhand ihres Status:
- Wählen Sie im Feld Filter Filter wie Registrierungsstatus aus.
- Klicken Sie auf Registriert. Eine Liste der bei der Anwendung registrierten Dienste und Arbeitslasten wird angezeigt.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
App Hub-Ressourcen löschen
Console
Rufen Sie in der Google Cloud Console die Seite Anwendungen in App Hub auf.
Klicken Sie auf den Namen einer Anwendung: sample-application.
Klicken Sie auf dem Tab Dienste und Arbeitslasten im Abschnitt Registrierte Dienste und Arbeitslasten auf den Namen des Dienstes service-forwarding-rule.
Klicken Sie auf der Seite Dienste und Arbeitslasten auf Registrierung des Dienstes aufheben. In einer Benachrichtigung werden Sie darüber informiert, dass der Dienst nicht registriert ist.
Klicken Sie auf dem Tab Dienste und Arbeitslasten im Abschnitt Registrierte Dienste und Arbeitslasten auf den Namen der Arbeitslast workload-instance-group.
Klicken Sie auf dem Tab Details auf Arbeitslast abmelden. Eine Benachrichtigung informiert Sie darüber, dass die Arbeitslast nicht registriert ist.
Rufen Sie im App Hub die Seite Anwendungen auf.
Klicken Sie auf den Namen einer Anwendung.
Klicken Sie auf der Seite tutorial-application auf Löschen.
Rufen Sie in der Google Cloud Console die Seite Einstellungen von App Hub auf.
Klicken Sie auf der Seite Einstellungen das Kästchen für die SERVICE_PROJECT_ID an, die Sie aus dem Hostprojekt entfernen möchten.
Klicken Sie auf Projekte trennen.
gcloud
Listen Sie die registrierten Dienste in der Anwendung auf:
gcloud apphub applications services list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=us-west1
Heben Sie die Registrierung der Dienste bei der Anwendung auf:
gcloud apphub applications services delete sample-service-backend \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=us-west1
gcloud apphub applications services delete sample-service-forwarding-rule \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=us-west1
gcloud apphub applications services delete sample-service-url-map \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=us-west1
Die Dienste werden jetzt erkannte Dienste, die unter der Anwendung registriert werden können.
Listen Sie die registrierten Arbeitslasten in der Anwendung auf:
gcloud apphub applications workloads list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=us-west1
Heben Sie die Registrierung der Arbeitslast von der Anwendung auf:
gcloud apphub applications workloads delete sample-workload \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=us-west1
Die Arbeitslast ist jetzt eine erkannte Arbeitslast, die bei der Anwendung registriert werden kann.
Löschen Sie die Anwendung:
gcloud apphub applications delete tutorial-application \ --project=HOST_PROJECT_ID \ --location=us-west1
Entfernen Sie das Dienstprojekt aus dem Hostprojekt:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
Bereitstellung löschen
Wenn Sie die Lösung nicht mehr benötigen, löschen Sie alle Ressourcen, um weitere Kosten für die in dieser Lösung erstellten Ressourcen zu vermeiden.
Verwenden Sie dieses Verfahren, wenn Sie die Lösung mit der Terraform-Befehlszeile bereitgestellt haben.
Prüfen Sie in Cloud Shell, ob das aktuelle Arbeitsverzeichnis
terraform-docs-samples/lb/regional_external_http_load_balancer
ist. Ist dies nicht der Fall, wechseln Sie zu diesem Verzeichnis.Entfernen Sie die von Terraform bereitgestellten Ressourcen:
terraform destroy
Terraform zeigt eine Liste der Ressourcen an, die gelöscht werden.
Wenn Sie aufgefordert werden, die Aktionen auszuführen, geben Sie
yes
ein.Terraform zeigt Nachrichten mit dem Fortschritt an. Nachdem alle Ressourcen gelöscht wurden, zeigt Terraform die folgende Meldung an:
Destroy complete!
Wenn Sie das für die Lösung verwendete Google Cloud-Projekt nicht mehr benötigen, können Sie das Projekt löschen.
Projekt löschen
Console
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.
gcloud
Löschen Sie ein Google Cloud-Projekt:
gcloud projects delete PROJECT_ID
Ersetzen Sie PROJECT_ID
durch HOST_PROJECT_ID
.