Sie können die Erfassung und Veröffentlichung von Ereignissen aus Google-Quellen für einen bestimmten Eventarc Advanced-Bus aktivieren, indem Sie eine GoogleApiSource-Ressource erstellen.
Ereignisse aus Google-Quellen werden direkt durch ein nicht vermitteltes Ereignis ausgelöst, z. B. durch die Erstellung einer Cloud Run-Funktion oder eine Statusänderung eines Dataflow-Jobs. Weitere Informationen finden Sie unter Von Eventarc unterstützte Google-Ereignistypen.
Wichtige Hinweise:
- Standardmäßig werden Ereignisse aus dem Google Cloud -Projekt erfasst, in dem die
GoogleApiSource-Ressource vorhanden ist. Sie können auch die gcloud CLI verwenden, um Ereignisse aus mehreren Projekten zu erfassen, die sich in derselben Organisation wie dieGoogleApiSource-Ressource befinden. Weitere Informationen finden Sie in diesem Dokument unter Ereignisse aus mehreren Projekten veröffentlichen. - Sie können Ereignisse in einem Bus veröffentlichen, der sich in einem anderen Google Cloud -Projekt als dem befindet, in dem die
GoogleApiSource-Ressource vorhanden ist. Sie können dies mit der gcloud CLI oder durch Senden einer Anfrage an die Eventarc API konfigurieren (nicht über die Google Cloud -Konsole). - Es gibt ein Limit von einer
GoogleApiSource-Ressource pro Google Cloud Projekt und Region.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie beginnen:
Console
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Eventarc and Eventarc Publishing APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Eventarc and Eventarc Publishing APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
gcloud
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Eventarc and Eventarc Publishing APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable eventarc.googleapis.com
eventarcpublishing.googleapis.com -
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Eventarc and Eventarc Publishing APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable eventarc.googleapis.com
eventarcpublishing.googleapis.com
Ereignisse aus Google-Quellen aktivieren
Wenn Sie Ereignisse aus Google-Quellen veröffentlichen möchten, müssen Sie eine GoogleApiSource-Ressource erstellen. Diese Ressource stellt ein Abo für Google API-Ereignisse in einem bestimmten Google Cloud Projekt für einen bestimmten Eventarc Advanced-Bus dar.
Sie haben folgende Möglichkeiten, die Veröffentlichung von Ereignissen aus Google-Quellen zu aktivieren:
- In der Google Cloud Console
- Über die Google Cloud CLI in Ihrem Terminal oder in Cloud Shell
Anfrage an die Eventarc API senden
Console
Rufen Sie in der Google Cloud Console die Seite Eventarc > Bus auf.
Sie können einen Bus erstellen. Wenn Sie einen Bus aktualisieren, klicken Sie auf Bearbeiten.
Klicken Sie auf der Seite Bus bearbeiten auf Quelle hinzufügen, um eine Nachrichtenquelle hinzuzufügen.
- Übernehmen Sie im Bereich Nachrichtenquelle hinzufügen für den Google API-Nachrichtenanbieter den Standardwert
google-api-sourceoder geben Sie einen anderen Namen für die Nachrichtenquelle ein. - Klicken Sie auf Erstellen.
- Übernehmen Sie im Bereich Nachrichtenquelle hinzufügen für den Google API-Nachrichtenanbieter den Standardwert
Klicken Sie auf Speichern.
gcloud
Öffnen Sie ein Terminalfenster.
Sie können Ereignisse aus Google-Quellen mit dem Befehl
gcloud eventarc google-api-sources createaktivieren:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID
Ersetzen Sie Folgendes:
GOOGLE_API_SOURCE_NAME: die ID oder der vollständig qualifizierte Bezeichner IhrerGoogleApiSource-Ressource, die ein Abo für Google API-Ereignisse für einen bestimmten Bus darstelltBUS_NAME: Die ID oder der vollqualifizierte Bezeichner des Busses, für den Sie Google API-Ereignisse abonnieren möchten.BUS_PROJECT_ID: die Google Cloud Projekt-ID für den Bus
Optional können Sie auch die folgenden Flags verwenden:
--async, um sofort vom Befehl zurückzukehren, ohne auf den Abschluss des Vorgangs zu warten.--crypto-key, um den voll qualifizierten Namen eines vom Kunden verwalteten Verschlüsselungsschlüssels anzugeben. Wenn nicht angegeben, werden Google-owned and managed keys verwendet.--logging-configzum Konfigurieren der Protokollierungsebene, die eine der folgenden sein muss:NONE,DEBUG,INFO,NOTICE,WARNING,ERROR,CRITICAL,ALERT,EMERGENCY. Weitere Informationen finden Sie unterLogSeverity.
REST API
Verwenden Sie die Methode projects.locations.googleApiSources.create, um Ereignisse aus Google-Quellen zu aktivieren.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
GOOGLE_API_SOURCE_NAME: Der Anzeigename derGoogleApiSource-Ressource, die ein Abo für Google API-Ereignisse für einen bestimmten Bus darstellt, z. B.my_google_source.LABEL_KEYundLABEL_VALUE: Optional. Eine Zuordnung von Label-Schlüssel/Wert-Paaren, mit denen Sie Ihre Google Cloud Ressourcen organisieren können. Weitere Informationen finden Sie unter Was sind Labels?ANNOTATION_KEYundANNOTATION_VALUE: Optional. Eine Zuordnung von Schlüssel/Wert-Paaren für Anmerkungen in Form von Freitext. Sie können sie verwenden, um beliebige Informationen anzuhängen, die mit der Ressource verknüpft sind. Weitere Informationen finden Sie unter Annotationen.DESTINATION: die vollständig qualifizierte Kennung des Eventarc Advanced-Busses, in dem Google-Quellereignisse im Formatprojects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAMEveröffentlicht werden sollen. Weitere Informationen finden Sie unter Bus zum Weiterleiten von Nachrichten erstellen.ENCRYPT_KEY: optional. Ein Cloud KMS-Schlüssel, der von derGoogleApiSource-Ressource für die Datenverschlüsselung verwendet werden soll, im Formatprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Weitere Informationen finden Sie unter kundenverwaltete Verschlüsselungsschlüssel verwenden.PROJECT_ID: die Google Cloud-Projekt-ID, in der dieGoogleApiSource-Ressource erstellt werden soll.LOCATION: die unterstützte Region, in der dieGoogleApiSource-Ressource erstellt werden soll, z. B.us-central1.LOG_SEVERITY: optional. Der Mindestschweregrad des im Logeintrag beschriebenen Ereignisses. Eine der folgenden Möglichkeiten:NONE,DEBUG,INFO,NOTICE,WARNING,ERROR,CRITICAL,ALERT,EMERGENCY. Der Standardwert istNONE. Weitere Informationen finden Sie unterLogSeverity.
JSON-Text der Anfrage:
{
"displayName": "GOOGLE_API_SOURCE_NAME",
"labels": {"LABEL_KEY":"LABEL_VALUE"},
"annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
"destination": "DESTINATION",
"cryptoKeyName": "ENCRYPT_KEY",
"loggingConfig": {"logSeverity":"LOG_SEVERITY"}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Bei Erfolg enthält der Antworttext eine neu erstellte Instanz von Operation.
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
"createTime": "2024-01-25T17:17:45.782370139Z",
"target": "projects/PROJECT_ID/locations/LOCATION/googleApiSources/GOOGLE_API_SOURCE_NAME",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Ereignisse aus Google-Quellen im selben Google Cloud Projekt wie dieGoogleApiSource-Ressource werden jetzt erfasst und im Bus veröffentlicht.
Ereignisse aus Google-Quellen deaktivieren
Wenn Sie die Veröffentlichung von Ereignissen aus Google-Quellen in einem bestimmtenGoogle Cloud -Projekt in einem Eventarc Advanced-Bus deaktivieren möchten, müssen Sie die GoogleApiSource-Ressource löschen.
Sie haben folgende Möglichkeiten, die Veröffentlichung von Ereignissen aus Google-Quellen zu deaktivieren:
- In der Google Cloud Console
- Über die gcloud CLI in Ihrem Terminal oder in Cloud Shell
Anfrage an die Eventarc API senden
Console
Rufen Sie in der Google Cloud Console die Seite Eventarc > Bus-Details auf.
Klicken Sie auf Bearbeiten.
Klicken Sie auf der Seite Bus bearbeiten für die Nachrichtenquelle google-api-source (oder den Namen, den Sie ihr gegeben haben) auf Ressource löschen, um den Google API-Nachrichtenanbieter zu löschen.
Klicken Sie bei der Aufforderung Ressource löschen auf Bestätigen.
Klicken Sie auf Speichern.
gcloud
Öffnen Sie ein Terminalfenster.
Mit dem Befehl
gcloud eventarc google-api-sources deletekönnen Sie Ereignisse aus Google-Quellen deaktivieren:gcloud eventarc google-api-sources delete GOOGLE_API_SOURCE_NAME \ --location=REGION
Ersetzen Sie Folgendes:
GOOGLE_API_SOURCE_NAME: die ID oder voll qualifizierte Kennzeichnung derGoogleApiSource-RessourceREGION: der Standort derGoogleApiSource-Ressource
REST API
Wenn Sie Ereignisse aus Google-Quellen deaktivieren möchten, verwenden Sie die Methode projects.locations.googleApiSources.delete.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID: die Google Cloud Projekt-ID, in der dieGoogleApiSource-Ressource erstellt wird.LOCATION: die Region, in der dieGoogleApiSource-Ressource erstellt wird, z. B.us-central1.GOOGLE_API_SOURCE_NAME: Der Name derGoogleApiSource-Ressource, die Sie löschen möchten.
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Bei Erfolg enthält der Antworttext eine neu erstellte Instanz von Operation.
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
"createTime": "2024-01-25T17:17:45.782370139Z",
"target": "projects/PROJECT_ID/locations/LOCATION/googleApiSources/GOOGLE_API_SOURCE_NAME",
"verb": "delete",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Ereignisse aus Google-Quellen im selben Google Cloud -Projekt wie die gelöschte GoogleApiSource-Ressource werden nicht mehr erfasst und veröffentlicht.
Ereignisse aus mehreren Projekten veröffentlichen
Wenn Sie Google-Quellereignisse aus mehreren Google Cloud -Projekten erfassen und veröffentlichen möchten, müssen Sie eine GoogleApiSource-Ressource erstellen. Die Projekte müssen sich in derselben Organisation wie die GoogleApiSource-Ressource befinden. Weitere Informationen zu Organisationen finden Sie unter Ressourcenhierarchie.
Wichtige Hinweise:
- Die Veröffentlichung von Ereignissen aus mehreren Projekten muss mit der gcloud CLI konfiguriert werden und wird nicht in der Google Cloud Console angezeigt.
- Wenn das Projekt, das die
GoogleApiSource-Ressource enthält, in eine andere Organisation verschoben wird, funktioniert das Veröffentlichen von Ereignissen aus mehreren Projekten nicht mehr wie erwartet. Sie müssen dieGoogleApiSource-Ressource aktualisieren oder neu erstellen.
1. Eventarc-Dienst-Agent die entsprechende IAM-Rolle zuweisen
Wenn Sie Ereignisse auf Organisationsebene erfassen möchten, verwenden Sie den Befehl gcloud organizations add-iam-policy-binding, um dem Eventarc-Dienstkonto die entsprechende IAM-Rolle (Identity and Access Management) zuzuweisen:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member="SERVICE_AGENT_EMAIL" \ --role="roles/eventarc.multiProjectEventCollector"
Ersetzen Sie Folgendes:
ORGANIZATION_ID: Ihre ID der Organisationsressource.SERVICE_AGENT_EMAIL: die E-Mail-Adresse des primären Dienst-Agents von Eventarc in dem Projekt, in dem Sie dieGoogleApiSource-Ressource erstellen. Die E-Mail-Adresse hat das folgende Format:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.comErsetzen Sie
PROJECT_NUMBERdurch dieGoogle Cloud Projektnummer. Sie finden Ihre Projektnummer auf der Willkommensseite der Google Cloud -Konsole oder durch Ausführen des folgenden Befehls:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
2. Aus allen Projekten oder einer Liste von Projekten veröffentlichen
Wenn Sie Ereignisse aus Google-Quellen in mehreren Projekten veröffentlichen möchten, verwenden Sie den Befehl gcloud eventarc google-api-sources create auf eine der folgenden Arten:
Aus allen Google Cloud Projekten in derselben Organisation wie die
GoogleApiSource-Ressource veröffentlichen:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --location=REGION \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID \ --organization-subscription
Veröffentlichen aus einer Liste von Google Cloud Projekten in derselben Organisation wie die
GoogleApiSource-Ressource:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --location=REGION \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID \ --project-subscriptions=LIST_OF_PROJECTS
Ersetzen Sie Folgendes:
GOOGLE_API_SOURCE_NAME: die ID oder voll qualifizierte Kennzeichnung derGoogleApiSource-RessourceREGION: der Standort derGoogleApiSource-RessourceBUS_NAME: Die ID oder der vollqualifizierte Bezeichner des Busses, für den Sie Google API-Ereignisse abonnieren möchten.BUS_PROJECT_ID: die Google Cloud Projekt-ID für den BusLIST_OF_PROJECTS: eine durch Kommas getrennte Liste vonGoogle Cloud Projekt-IDs oder Projektnummern. Sie können IDs und Zahlen in derselben Liste kombinieren. Wenn Sie Ereignisse aus dem ProjektGoogle Cloud mit der RessourceGoogleApiSourceveröffentlichen möchten, müssen Sie die Projekt-ID oder -Nummer explizit in die Liste aufnehmen.
Nächste Schritte
- Kurzanleitung: Ereignisse aus einer Google-Quelle veröffentlichen
- Ereignisse direkt veröffentlichen
- Empfangene Ereignisse formatieren
- Empfangene Ereignisse transformieren