Dieses Dokument richtet sich an Unternehmensarchitekten und Softwareentwickler, die eine Automatisierungspipeline erstellen möchten, um Active Assist in ihrer Google Cloud-Organisation zu verwenden. Das Dokument ist Teil einer Reihe, in der Architekturmuster erläutert werden, mit denen Unternehmen ihren Cloud-Fußabdruck mit Active Assist umfassend optimieren können. Die Reihe besteht aus folgenden Teilen:
- Muster für die Nutzung von Active Assist in großem Umfang
- Serverlose Pipelines mit Active Assist verwenden (dieses Dokument)
- Anthos-Toolchain mit Active Assist verwenden
In dieser Anleitung erfahren Sie, wie Sie mit serverlosen Technologien von Google Cloud eine Automatisierungspipeline erstellen, um Active Assist-Empfehlungen abzurufen und zu verarbeiten. Die Empfehlungen basieren auf den Geschäftsregeln, die von Ihrem Unternehmen festgelegt wurden. Die Automatisierungspipeline, die Sie in dieser Anleitung einrichten, hilft Ihnen bei der Arbeit mit Active Assist in großem Umfang, während Sie gleichzeitig einen teamgeführten Überprüfungs- und Aktivierungsprozess verfolgen. Dieser Ansatz ist nützlich, wenn Ihr Unternehmen die Verwendung des Active Assist-Portfolios skalieren möchte, aber die Kontrolle über den Überprüfungs- und Aktivierungsprozess innerhalb von Teams behalten soll. Es bietet eine Alternative zur Verwendung einer CI/CD-Pipeline (Continuous Integration und Continuous Delivery).
Die in dieser Anleitung gezeigte Architektur ist generisch und Sie können sie auf andere serverlose Produkte erweitern. In dieser Anleitung wird davon ausgegangen, dass Sie mit den folgenden Google Cloud-Technologien vertraut sind:
Damit Sie diese Anleitung abschließen können, benötigen Sie ein Konto für Slack oder ein ähnliches Tool für Benachrichtigungen oder Ticketverarbeitung. Das Tool muss auf Ihrem Computer eingerichtet und einsatzbereit sein.
Architektur
Da die in dieser Anleitung gezeigte Architektur modular ist, können Sie die Benachrichtigungskomponente an die Anforderungen Ihres Unternehmens anpassen. In dieser Anleitung wird gezeigt, wie Benachrichtigungen generiert und an Slack gesendet werden. Sie können Benachrichtigungen auch an Pub/Sub oder ein anderes Tool zur Benachrichtigungs- oder Ticketverarbeitung senden.
Im folgenden Diagramm sehen Sie die Komponenten, die Sie in dieser Anleitung verwenden:
Die Architektur besteht aus folgenden Komponenten:
- Einem Cloud Run-Dienst, der in festen Intervallen von einem Planer ausgelöst wird. Der Dienst ruft die Recommender APIs auf, indem er die Metadaten (Projekt-IDs und Recommender-Typen) liest, die in einer Firestore-Sammlung definiert sind und aufbewahrt werden.
- Einem Pub/Sub-Thema, in das die Active Assist-Empfehlungen verschoben werden und in dem sie verarbeitet werden.
- Einem zweiten Cloud Run-Dienst, der Active Assist-Empfehlungen parst. Dieser Dienst bestimmt, wie Empfehlungen basierend auf den von Ihrem Unternehmen definierten Geschäftsregeln verarbeitet und in einer Firestore-Sammlung gespeichert werden.
- Zwei Firestore-Sammlungen zum Speichern der Geschäftsmetadaten und der Geschäftsregeln. Die Firestore-Sammlungen funktionieren so:
- In der ersten Sammlung werden die geschäftlichen Metadaten gespeichert, die für den Abruf von Active Assist-Empfehlungen relevant sind. In dieser Anleitung werden die Attribute
recommendation type
,Google Cloud project IDs
undlocations
als geschäftliche Metadaten verwendet. Diese Attribute werden vom Cloud Run-Dienstrecommendation-collector
verwendet, um zu bestimmen, welche Empfehlungstypen abgerufen werden. - Die zweite Sammlung speichert Geschäftsregeln, die bei der Verarbeitung von Empfehlungen angewendet werden.
- In der ersten Sammlung werden die geschäftlichen Metadaten gespeichert, die für den Abruf von Active Assist-Empfehlungen relevant sind. In dieser Anleitung werden die Attribute
Ziele
- Erstellen Sie einen Cloud Run-Beispieldienst, um Active Assist-Empfehlungen für ein Beispielprojekt abzurufen und per Push in ein Pub/Sub-Thema zu übertragen.
- Erstellen Sie zwei Firestore-Sammlungen, um Beispielmetadaten bzw. Geschäftsregeln zu speichern.
- Erstellen Sie einen zweiten Cloud Run-Dienst, um Empfehlungen entsprechend den in dieser Anleitung definierten Beispielregeln für das Unternehmen zu verarbeiten.
- Erstellen Sie einen Slack-Kanal, an den der Cloud Run-Dienst Beispiele für Active Assist-Beispielempfehlungen sendet.
- Testen Sie die End-to-End-Pipeline mit Active Assist-Beispielempfehlungen.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
- Notieren Sie sich die Google Cloud-Projekt-ID für das Empfehlungsmanagerprojekt. Sie benötigen diese ID im nächsten Abschnitt zum Einrichten der Umgebung.
-
Enable the Cloud Build, Firestore, App Engine, Pub/Sub, Cloud Run, Cloud Scheduler und Cloud Source Repositories APIs.
Bei dieser Anleitung verwenden Sie die Standardanmeldedaten für Anwendungen. Wenn Sie aufgefordert werden, Anmeldedaten auf der Seite Anmeldedaten zu Ihrem Projekt hinzufügen zu erstellen, klicken Sie auf Abbrechen. -
Make sure that billing is enabled for your Google Cloud project.
-
Erstellen Sie Folgendes:
- Einen Slack-Beispielkanal
- Eine Slack-Beispielanwendung und einen eingehenden Webhook zum Empfangen von Benachrichtigungen, die von einer Engine namens
recommendation-rules-engine
generiert wurden. Sie richten die Engine später in dieser Anleitung ein.
Wenn Sie eine Slack-Anwendung und eine eingehende Webhook-URL erstellt haben, notieren Sie sich die URL, da Sie sie später in dieser Anleitung benötigen.
Serverlose Pipeline erstellen
In diesem Abschnitt erstellen Sie die Komponenten, die Sie zum Erstellen der serverlosen Pipeline benötigen. Die Plattform generiert Active Assist-Empfehlungen basierend auf Nutzungsmustern und Systemmesswerten. Je nach generierten Empfehlungen kann jede Empfehlungskategorie einen anderen Standardzeitraum in der Vergangenheit verwenden, um Nutzungsdaten und Messwerte zu analysieren.
Wenn Sie ein Google Cloud-Beispielprojekt mit vorhandenen Ressourcen und Active Assist-Empfehlungen haben, können Sie die Pipeline ausführen, um diese Empfehlungen zu verarbeiten, nachdem Sie die entsprechenden Änderungen am bereitgestellten Beispielcode vorgenommen haben.
Firestore-Sammlungen erstellen
In diesem Abschnitt erstellen Sie zwei Firestore-Sammlungen.
Die erste Sammlung activeassist-metadata
speichert die Geschäftsmetadaten, die für das Abrufen von Active Assist-Empfehlungen relevant sind. In der zweiten Sammlung activeassist-business-rules
werden die Geschäftsregeln gespeichert, die angewendet werden, wenn die Pipeline Empfehlungen verarbeitet.
Wenn Active Assist-Empfehlungen basierend auf den Geschäftsregeln in der Firestore-Sammlung geparst werden, wird entweder eine Benachrichtigung generiert und gesendet oder die Empfehlung wird automatisch auf die entsprechende Google Cloud-Ressource angewendet.
activeassist-metadata
-Sammlung erstellen
Rufen Sie in der Google Cloud Console die Seite Firestore auf.
Erstellen Sie eine Firestore-Datenbank, falls Sie noch keine haben. Wenn Sie bereits eine Firestore-Datenbank haben, fahren Sie mit dem nächsten Schritt fort.
Erstellen Sie die Datenbank:
- Klicken Sie auf Nativen Modus auswählen, um Firestore zu aktivieren.
- Wählen Sie einen Standort in der Nähe der Region aus, in der Ihre Cloud Run-Dienste ausgeführt werden.
- Klicken Sie auf Datenbank erstellen. Es dauert einige Augenblicke, bis die Konfiguration abgeschlossen ist.
Klicken Sie auf der Firestore-Seite auf Sammlung starten.
Geben Sie im Feld Sammlungs-ID Folgendes ein:
activeassist-metadata
.Füllen Sie die Felder wie in der folgenden Tabelle dargestellt aus. Klicken Sie auf Feld hinzufügen, um das nächste Feld hinzuzufügen.
Feldname Feldtyp Feldwert Hinweis project
string
Stub-Project-ID
In dieser Anleitung wird ein Stub für den Feldwert verwendet. Wenn Sie Empfehlungen aus einem vorhandenen Google Cloud-Projekt verwenden möchten, geben Sie stattdessen die Projekt-ID ein. locations
array
global
Einige Empfehlungen können regions- oder zonenspezifisch sein, z. B. Empfehlungen zur VM-Größenanpassung. Andere Empfehlungen sind global, z. B. IAM-Empfehlungen. recommenderType
string
google.iam.policy.Recommender
Nicht zutreffend. Wenn die Felder ausgefüllt sind, klicken Sie auf Speichern.
activeassist-business-rules
-Sammlung erstellen
- Klicken Sie auf Start Collection (Sammlung starten).
Geben Sie im Feld Sammlungs-ID Folgendes ein:
activeassist-business-rules
.Befüllen Sie das Dokument wie in der folgenden Tabelle dargestellt. Klicken Sie auf Feld hinzufügen, um das nächste Feld hinzuzufügen.
Feldname Feldtyp Feldwert Hinweis action
string
Notify
Wenn Sie den Wert auf Apply
festlegen, wendet der Dienst die Empfehlung an und entfernt die nicht verwendete Rolle.projectId
string
Stub-Project-ID
In dieser Anleitung wird eine Stub-Empfehlung verwendet. Wenn Sie Empfehlungen aus einem vorhandenen Google Cloud-Projekt verwenden möchten, geben Sie stattdessen die Projekt-ID ein. projectNumber
string
999999999
In dieser Anleitung wird eine Stub-Empfehlung verwendet.
Wenn Sie eine Empfehlung aus einem vorhandenen Google Cloud-Projekt verwenden, geben Sie stattdessen die Projektnummer ein. Die Projektnummer finden Sie im Google Cloud Console-Dashboard.recommenderType
string
google.iam.policy.Recommender
Nicht zutreffend. recommenderSubtype
string
REMOVE_ROLE
Nicht zutreffend. slackWebhookURL
string
Geben Sie die Slack-Webhook-URL ein, die Sie in einem vorherigen Schritt generiert haben. Die URL sieht etwa so aus:
https://hooks.slack.com/services/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
In dieser Anleitung erfahren Sie, wie Sie eine Regel erstellen, um zu bestimmen, ob eine Empfehlung automatisch angewendet wird oder ob eine Benachrichtigung generiert und an eine Plattform wie Slack gesendet wird. Informationen dazu, wie eine Empfehlung automatisch anhand der Auswertung von Beispielgeschäftsregeln angewendet werden kann, die Sie eingerichtet haben, finden Sie im zugehörigen Repository.
Wenn das Dokument gefüllt ist, klicken Sie auf Speichern.
Geplanten Cloud Run-Dienst erstellen
In diesem Abschnitt erstellen Sie einen geplanten Cloud Run-Dienst namens recommendation-collector
, der die Recommender API auslöst und aktive Empfehlungen abruft. Die Identity and Access Management Recommender API wird in dieser Anleitung als Recommender API verwendet. Der Dienst liest Metadaten aus der von Ihnen erstellten Firestore-Sammlung activeassist-metadata
, um zu ermitteln, welche Empfehlungen abgerufen werden sollen.
Klicken Sie auf In Cloud Shell öffnen, um Cloud Shell für das Empfehlungsmanagerprojekt zu öffnen.
Wenn Cloud Shell geöffnet wird, werden die folgenden Befehle ausgeführt:
- Der Befehl zum Clonen von GitHub-Repository.
- Der Befehl „Verzeichnis wechseln“
Wenn das Dialogfeld In Cloud Shell öffnen angezeigt wird, wählen Sie Vertrauen aus und klicken Sie dann auf Bestätigen.
Legen Sie die Projekt-ID und die Projektnummer des aktuellen Empfehlungsmanagerprojekts als Variablen fest:
export RECO_MGR_PROJECT=PROJECT_ID gcloud config set project $RECO_MGR_PROJECT export RECO_MGR_PROJECT_NUMBER=$(gcloud projects describe $DEVSHELL_PROJECT_ID --format='value(projectNumber)')
Ersetzen Sie
PROJECT_ID
durch Ihre Projekt-ID. Klicken Sie nach der Eingabe der Befehle auf Autorisieren, wenn Sie dazu aufgefordert werden.Legen Sie für die Deployment-Region eine Variable fest:
export REGION=us-central1
Obwohl in dieser Anleitung die Region
us-central1
verwendet wird, können Sie eine beliebige Region verwenden, in der Cloud Run verfügbar ist.Erstellen Sie eine Umgebungsvariable für Ihr Docker-Image:
export RECOMMENDER_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-collector:1.0
Erstellen Sie das Docker-Image und laden Sie es in Container Registry hoch:
gcloud builds submit --tag $RECOMMENDER_IMAGE
Erstellen Sie ein Dienstkonto für den Dienst
recommendation-collector
, um mit anderen Google Cloud-Diensten in der Pipeline zu interagieren:gcloud iam service-accounts create recommendation-collector-sa \ --description "Service Account that the recommendation-collector service uses to invoke other Google Cloud services" \ --display-name "recommendation-collector-sa" \ --project $RECO_MGR_PROJECT
Es empfiehlt sich, Ihren Cloud Run-Diensten detaillierte Berechtigungen zu gewähren, indem Sie dem Dienstkonto vordefinierte Rollen zuweisen. Weitere Informationen finden Sie unter Dienstidentität.
Gewähren Sie dem Dienstkonto für den Dienst
recommendation-collector
Zugriff auf Firestore und die Recommender API:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/datastore.user gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/pubsub.publisher
Wenn Sie diese Anleitung mit dem Beispiel-
stub
ausführen, das im von Ihnen geklonten Repository bereitgestellt wird, fahren Sie mit dem nächsten Schritt fort.Wenn Sie die Pipeline in dieser Anleitung erstellen und dabei Empfehlungen für ein vorhandenes Google Cloud-Projekt verwenden, müssen Sie den Dienstkonten, die Sie zum Ausführen der beiden Cloud Run-Dienste erstellt haben, IAM-Berechtigungen zuweisen.
Legen Sie die Umgebungsvariable
TEST_PROJECT_ID
mit der ID des Projekts fest, für das Sie diese Pipeline ausführen, bevor Sie die Befehle ausführen:export TEST_PROJECT_ID=TEST_PROJECT_ID gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/recommender.iamAdmin gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/serviceusage.serviceUsageConsumer gcloud services enable recommender.googleapis.com --project $TEST_PROJECT_ID
Achten Sie darauf, dass die verwendete Projekt-ID mit der ID übereinstimmt, die Sie unter Firestore-Sammlungen erstellen eingegeben haben.
In dieser Anleitung stellen Sie den Dienst mit einer Umgebungsvariable namens
STUB_RECOMMENDATIONS
bereit. Mit dieser Variablen können Sie einen Stub zum Testen der Pipeline verwenden.Stellen Sie den Cloud Run-Dienst bereit:
gcloud run deploy recommendation-collector \ --image=$RECOMMENDER_IMAGE \ --no-allow-unauthenticated \ --region $REGION \ --platform managed \ --service-account recommendation-collector-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --set-env-vars="STUB_RECOMMENDATIONS=true" \ --project $RECO_MGR_PROJECT \
Nehmen Sie alle Systemaufforderungen an.
Wenn Sie die Pipeline mit Active Assist-Empfehlungen ausführen möchten, die für ein Google Cloud-Projekt generiert wurden, entfernen Sie die folgende Zeile aus dem Befehl, bevor Sie ihn bereitstellen:
--set-env-vars="STUB_RECOMMENDATIONS=true"
Cloud Scheduler-Job zum Ausführen des recommender-collector service
einrichten
Erstellen Sie in Cloud Shell ein Dienstkonto für Cloud Scheduler-Jobs, die zum Ausführen des Dienstes
recommendation-collector
verwendet werden:gcloud iam service-accounts create recommender-scheduler-sa \ --description "Service Account used by Cloud Scheduler to invoke the recommender-parser service" \ --display-name "recommender-scheduler-sa" \ --project $RECO_MGR_PROJECT
Weisen Sie dem Dienstkonto die Rolle
run/invoker
zu, damit es den Cloud Run-Dienst aufrufen kann:gcloud run services add-iam-policy-binding recommendation-collector \ --member=serviceAccount:recommender-scheduler-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role=roles/run.invoker \ --region=$REGION \ --platform=managed
Rufen Sie die Dienst-URL
recommendation-collector
ab:export RECOMMENDER_SERVICE_URI=`gcloud run services describe recommendation-collector \ --platform managed \ --project $RECO_MGR_PROJECT \ --region $REGION \ --format="value(status.url)"`/run
Erstellen Sie einen Cloud Scheduler-Job mit dem Namen
recommender-iam-scheduler
:gcloud scheduler jobs create http recommender-iam-scheduler \ --project $RECO_MGR_PROJECT \ --time-zone "America/Los_Angeles" \ --schedule="0 */3 * * *" \ --uri=$RECOMMENDER_SERVICE_URI \ --description="Scheduler job to invoke recommendation pipeline" \ --oidc-service-account-email="recommender-scheduler-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com" \ --headers="Content-Type=application/json" \ --http-method="POST"
Legen Sie die Zeitzone Ihres Standorts fest. Das Zeitzonenwertformat basiert auf der tz-Datenbank.
Weitere Informationen finden Sie unter gcloud scheduler jobs create http.
Ihr Cloud Scheduler-Job ruft die Route
/run
für den Dienstrecommendation-collector
auf.Mit dem Flag
--schedule="0 */3 * * *"
wird der Planerjob alle drei Stunden ausgeführt. Sie können diese Einstellung Ihren Anforderungen entsprechend ändern. Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.
Empfehlungsregeln-Engine erstellen, um Empfehlungen zu verarbeiten
In diesem Abschnitt erstellen Sie einen zweiten Cloud Run-Dienst mit dem Namen recommendation-rules-engine
, um Empfehlungen zu verarbeiten, die vom Dienst recommendation-collector
erfasst werden. Der Dienst recommendation-rules-engine
wird von Pub/Sub aufgerufen, wenn neue Empfehlungen per Push in das Thema activeassist-recommendations
übertragen werden.
Dieser Dienst parst Empfehlungen basierend auf den Geschäftsregeln, die Sie in der Sammlung activeassist-business-rules
definiert haben.
Öffnen Sie in Cloud Shell das Verzeichnis
recommendation-rules-engine
:cd ../recommendation-rules-engine
Erstellen Sie eine Umgebungsvariable für Ihr Docker-Image:
export RULES_ENGINE_IMAGE=gcr.io/$RECO_MGR_PROJECT/recommendation-rules-engine:1.0
Erstellen Sie das Docker-Image und laden Sie es in Container Registry hoch:
gcloud builds submit --tag $RULES_ENGINE_IMAGE
Erstellen Sie ein Dienstkonto für den Dienst
recommendation-rules-engine
, um mit anderen Google Cloud-Diensten in der Pipeline zu interagieren:gcloud iam service-accounts create recommendation-rules-sa \ --description "Service Account that recommendation-rules-engine uses to invoke other Google Cloud services" \ --display-name "recommendation-rules-sa" \ --project $RECO_MGR_PROJECT
Gewähren Sie dem Dienstkonto für den Dienst
recommendation-rules-engine
Zugriff auf Firestore:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/datastore.user
Wenn Sie die für diese Anleitung bereitgestellten Stubs verwenden, fahren Sie mit dem nächsten Schritt fort.
Wenn Sie die Pipeline mit Empfehlungen testen, die für ein Google Cloud-Projekt generiert wurden, anstatt mit den für dieses Tutorial bereitgestellten Stubs, führen Sie die folgenden Befehle aus, um dem Dienstkonto der Regel-Engine den Zugriff auf Ihr Projekt zu ermöglichen:
gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/serviceusage.serviceUsageConsumer gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/recommender.iamAdmin gcloud projects add-iam-policy-binding $TEST_PROJECT_ID \ --member serviceAccount:recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/resourcemanager.projectIamAdmin
Stellen Sie den Cloud Run-Dienst bereit:
gcloud run deploy recommendation-rules-engine \ --image=$RULES_ENGINE_IMAGE \ --no-allow-unauthenticated \ --region $REGION \ --platform managed \ --service-account recommendation-rules-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --project $RECO_MGR_PROJECT
Nehmen Sie alle Systemaufforderungen an.
Rufen Sie die URL
recommendation-rules-engine
ab:export RECOMMENDER_SERVICE_RULES_URI=`gcloud run services describe recommendation-rules-engine \ --platform managed \ --project $RECO_MGR_PROJECT \ --region $REGION \ --format="value(status.url)"`/process
Die URL, die Sie in diesem Schritt abrufen, wird aufgerufen, wenn das Pub/Sub-Thema, das Sie im nächsten Schritt erstellen, neue Empfehlungen erhält.
Pub/Sub-Thema für aktive Empfehlungen erstellen
In diesem Abschnitt erstellen Sie ein Pub/Sub-Thema für die Active Assist-Empfehlungen, die der Dienst recommender-collector
durch Aufrufen der Recommender API abruft.
Erstellen Sie in Cloud Shell ein Pub/Sub-Thema:
gcloud pubsub topics create activeassist-recommendations
Erstellen Sie ein Dienstkonto für Pub/Sub zum Aufrufen des Cloud Run-Dienstes
recommendation-rules-engine
:gcloud iam service-accounts create recommendation-engine-sub-sa \ --description "Service Account used by Pub/Sub to push recommendations to the recommendation-rules-engine service" \ --display-name "recommendation-engine-sub-sa" \ --project $RECO_MGR_PROJECT
Das Pub/Sub-Dienstkonto muss den Rollen zugeordnet sein, die es zum Veröffentlichen von Nachrichten und zum Aufrufen des Dienstes
recommendation-rules-engine
benötigt:gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member serviceAccount:recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role roles/run.invoker \ --project $RECO_MGR_PROJECT
Abo für das Pub/Sub-Thema erstellen
Erstellen Sie ein Abo für den Dienst
recommendation-rules-engine
:# grant Pub/Sub the permission to create tokens PUBSUB_SERVICE_ACCOUNT="service-$RECO_MGR_PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding $RECO_MGR_PROJECT \ --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT"\ --role='roles/iam.serviceAccountTokenCreator' # configure the subscription push identity gcloud pubsub subscriptions create active-assist-recommendations-for-rules-engine \ --topic=activeassist-recommendations \ --topic-project=$RECO_MGR_PROJECT \ --push-auth-service-account=recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --ack-deadline=60 \ --push-endpoint=$RECOMMENDER_SERVICE_RULES_URI
Erlauben Sie dem erstellten
recommendation-engine-sub-sa
-Dienstkonto, den Dienstrecommendation-rules-engine
aufzurufen:gcloud run services add-iam-policy-binding recommendation-rules-engine \ --member=serviceAccount:recommendation-engine-sub-sa@$RECO_MGR_PROJECT.iam.gserviceaccount.com \ --role=roles/run.invoker \ --region=$REGION \ --platform=managed
End-to-End-Tests mit Stubs ausführen
Active Assist-Empfehlungen werden von der Plattform auf Basis von Nutzungsmustern und Systemmesswerten generiert. Jede Empfehlungskategorie kann ein anderes Standardzeitfenster in der Vergangenheit verwenden, um Nutzungsdaten und Messwerte auf der Grundlage der generierten Empfehlungen zu analysieren. Beispielsweise werden IAM-Empfehlungen von der Plattform basierend auf Nutzungsmustern der letzten 90 Tage generiert.
Zum Testen der End-to-End-Pipeline enthält das für diese Anleitung geklonte Repository Beispielempfehlungen (Stubs), mit denen Sie die End-to-End-Pipeline ausführen.
In diesem Abschnitt tun Sie Folgendes:
- Prüfen Sie die Stub-Empfehlungen.
- Rufen Sie die Pipeline manuell auf.
- Prüfen Sie, ob eine Benachrichtigung generiert und an den von Ihnen erstellten Slack-Kanal gesendet wird.
Prüfen Sie die im Repository bereitgestellten Beispielempfehlungen:
cat ../recommendation-collector/stub.json
Diese Datei enthält eine Beispielempfehlung mit der Aktion
REMOVE
für eine Beispielrolle namensroles/gkehub.connect
.Führen Sie den folgenden Befehl aus, damit Cloud Scheduler den Job sofort ausführt, anstatt auf die nächste geplante Ausführung zu warten:
gcloud scheduler jobs run recommender-iam-scheduler
Auf demCloud Scheduler Konsolenseite, in der Spalte Ergebnis für den
recommender-iam-scheduler
-Job prüfen Sie, ob das ErgebnisErfolgreich ist.Um eine detaillierte Ansicht der Schritte zu erhalten, die die einzelnen Dienste ausführen, können Sie auch die Cloud Run-Dienstlogs für die Dienste
recommendation-collector
undrecommendation-rules-engine
aufrufen.Wenn die serverlose End-to-End-Pipeline, die Sie in dieser Anleitung erstellen, erfolgreich ausgeführt wird, wird eine Slack-Benachrichtigung mit Details zur empfohlenen Rollenbindung erstellt, die Sie entfernen sollen. Hier ein Beispiel für die Benachrichtigung, die Sie erhalten:
Project xxxxxxxx\ **Impact**: SECURITY\ This role has not been used during the observation window.\ **Role**: roles/gkehub.connect\ **Member**: serviceAccount:sample-sa@recommendation-sample.iam.gserviceaccount.com\ **Action**: remove
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.
Nächste Schritte
- Empfehlungen für Infrastruktur als Code verwenden.
- Weitere Informationen zu serverlosen Google Cloud-Technologien.
- Einbindung von Policy Intelligence-Empfehlungen in eine IaC-Pipeline.
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.