Puedes habilitar o inhabilitar la recopilación y publicación de eventos de fuentes de Google para un bus de Eventarc Advanced específico.
Los eventos de las fuentes de Google se activan directamente por un evento no mediado, como la creación de una función de Cloud Run o un cambio de estado en un trabajo de Dataflow. Para obtener más información, consulta los tipos de eventos de Google compatibles con Eventarc.
Ten en cuenta lo siguiente:
- Existe un límite de un recurso
GoogleApiSource
por proyecto Google Cloud . - Solo puedes publicar eventos de fuentes de Google en el mismo proyecto Google Cloud que el recurso
GoogleApiSource
. - Puedes publicar eventos en un bus que se encuentre en un Google Cloud proyecto
diferente del que contiene el recurso
GoogleApiSource
. Puedes configurar esto con gcloud CLI o enviando una solicitud a la API de Eventarc.
Antes de comenzar
Si aún no lo hiciste, habilita la API de Eventarc y la API de Eventarc Publishing.
Console
gcloud
gcloud services enable eventarc.googleapis.com eventarcpublishing.googleapis.com
Habilita eventos de fuentes de Google
Para publicar eventos desde fuentes de Google, debes crear un recurso GoogleApiSource
. Este recurso representa una suscripción a eventos de la API de Google en un Google Cloud proyecto específico para un bus de Eventarc Advanced en particular.
Puedes habilitar la publicación de eventos de fuentes de Google de las siguientes maneras:
- En la consola de Google Cloud
- Con Google Cloud CLI en tu terminal o Cloud Shell
Envía una solicitud a la API de Eventarc
Console
En la consola de Google Cloud , ve a la página Eventarc > Bus.
Puedes crear un colectivo o, si vas a actualizar uno, haz clic en Editar.
En la página Edit bus, para agregar una fuente de mensajes, haz clic en
Agregar fuente.- En el panel Agregar fuente de mensajes, para el proveedor de mensajes de la API de Google, acepta el valor predeterminado
google-api-source
o ingresa un nombre de fuente de mensajes diferente. - Haz clic en Crear.
- En el panel Agregar fuente de mensajes, para el proveedor de mensajes de la API de Google, acepta el valor predeterminado
Haz clic en Guardar.
gcloud
Abre una terminal.
Puedes habilitar los eventos de fuentes de Google con el comando
gcloud beta eventarc google-api-sources create
:gcloud beta eventarc google-api-source create GOOGLE_API_SOURCE_NAME \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID
Reemplaza lo siguiente:
GOOGLE_API_SOURCE_NAME
: Es el ID o el identificador completamente calificado de tu recursoGoogleApiSource
, que representa una suscripción a los eventos de la API de Google para un bus en particular.BUS_NAME
: Es el ID o el identificador completamente calificado del colectivo al que deseas suscribirte para recibir eventos de la API de Google.BUS_PROJECT_ID
: ID del proyecto Google Cloud del colectivo
Opcional: También puedes usar las siguientes marcas:
--async
para que el comando se muestre de inmediato, sin necesidad de esperar a que se complete la operación en curso.--crypto-key
para especificar el nombre completamente calificado de una clave de encriptación administrada por el cliente. Si no se especifica,se usan Google-owned and managed keys .--logging-config
para configurar el nivel de registro, que debe ser uno de los siguientes:NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
Para obtener más información, consultaLogSeverity
.
API de REST
Para habilitar los eventos de las fuentes de Google, usa el método
projects.locations.googleApiSources.create
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
GOOGLE_API_SOURCE_NAME
: Es el nombre visible del recursoGoogleApiSource
que representa una suscripción a eventos de la API de Google para un bus en particular, por ejemplo,my_google_source
.LABEL_KEY
yLABEL_VALUE
: Opcionales. Es un mapa de pares clave-valor de etiquetas que te ayudan a organizar tus recursos de Google Cloud . Para obtener más información, consulta ¿Qué son las etiquetas?ANNOTATION_KEY
yANNOTATION_VALUE
: Opcionales. Es un mapa de pares clave-valor de anotación de texto de formato libre. Puedes usarlos para adjuntar información arbitraria asociada al recurso. Para obtener más información, consulta Anotaciones.DESTINATION
: Es el identificador completamente calificado del bus de Eventarc Advanced en el que se deben publicar los eventos de la fuente de Google en el formatoprojects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME
. Para obtener más información, consulta Crea un bus para enrutar mensajes.ENCRYPT_KEY
: es opcional. Una clave de Cloud KMS que el recursoGoogleApiSource
debe usar para la encriptación de datos en el formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
. Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.PROJECT_ID
: Es el ID del proyecto en el que se creará el recurso Google Cloud.GoogleApiSource
LOCATION
: Es la región admitida en la que se creará el recursoGoogleApiSource
, por ejemplo,us-central1
.LOG_SEVERITY
: es opcional. Es la gravedad mínima del evento que se describe en una entrada de registro. Uno de los siguientes:NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
. El valor predeterminado esNONE
. Para obtener más información, consultaLogSeverity
.
Cuerpo JSON de la solicitud:
{ "displayName": "GOOGLE_API_SOURCE_NAME", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"}, "destination": "DESTINATION", "cryptoKeyName": "ENCRYPT_KEY", "loggingConfig": {"logSeverity":"LOG_SEVERITY"} }
Para enviar tu solicitud, expande una de estas opciones:
Si el proceso se realiza de forma correcta, el cuerpo de la respuesta contiene una instancia recién creada de
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 }
Ahora, los eventos de las fuentes de Google en el mismo proyecto Google Cloud que el recursoGoogleApiSource
se recopilan y publican en el bus.
Inhabilita los eventos de fuentes de Google
Para inhabilitar la publicación de eventos de fuentes de Google en un bus de Eventarc Advanced de un proyectoGoogle Cloud específico, debes borrar el recurso GoogleApiSource
.
Puedes inhabilitar la publicación de eventos de fuentes de Google de las siguientes maneras:
- En la consola de Google Cloud
- Con gcloud CLI en tu terminal o Cloud Shell
Envía una solicitud a la API de Eventarc
Console
En la consola de Google Cloud , ve a la página Eventarc > Detalles del bus.
Haz clic en
Editar.En la página Edit bus, para borrar el proveedor de mensajes de la API de Google, haz clic en
Borrar recurso para la fuente de mensajes google-api-source (o el nombre que le hayas asignado).En el mensaje Borrar recurso, haz clic en Confirmar.
Haz clic en Guardar.
gcloud
Abre una terminal.
Puedes inhabilitar los eventos de fuentes de Google con el comando
gcloud beta eventarc google-api-sources delete
:gcloud beta eventarc google-api-source delete GOOGLE_API_SOURCE_NAME \ --location=REGION
Reemplaza lo siguiente:
GOOGLE_API_SOURCE_NAME
: Es el ID o el identificador completamente calificado del recursoGoogleApiSource
.REGION
: la ubicación del recursoGoogleApiSource
API de REST
Para inhabilitar los eventos de las fuentes de Google, usa el método
projects.locations.googleApiSources.delete
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: Es el ID del proyecto Google Cloud en el que se crea el recursoGoogleApiSource
.LOCATION
: la región en la que se crea el recursoGoogleApiSource
, por ejemplo,us-central1
.GOOGLE_API_SOURCE_NAME
: Es el nombre del recursoGoogleApiSource
que deseas borrar.
Para enviar tu solicitud, expande una de estas opciones:
Si el proceso se realiza de forma correcta, el cuerpo de la respuesta contiene una instancia recién creada de
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 }
Ya no se recopilan ni publican los eventos de las fuentes de Google en el mismo proyecto Google Cloud que el recursoGoogleApiSource
borrado.
¿Qué sigue?
- Publica eventos directamente
- Cómo dar formato a los eventos recibidos
- Transforma los eventos recibidos