Publicar eventos de fuentes de Google

Puede habilitar o inhabilitar la recogida y publicación de eventos de fuentes de Google en un bus avanzado de Eventarc específico.

Los eventos de fuentes de Google se activan directamente mediante un evento sin intermediación, 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:

  • Hay un límite de un GoogleApiSource recurso por Google Cloud proyecto y por región.
  • Solo puede publicar eventos de fuentes de Google en el mismo Google Cloud proyecto que el recurso GoogleApiSource.
  • Puedes publicar eventos en un bus que esté en un Google Cloud proyecto distinto de aquel en el que se encuentre el recurso GoogleApiSource. Para configurar esta opción, puedes usar la CLI de gcloud o enviar una solicitud a la API de Eventarc.

Antes de empezar

Si aún no lo has hecho, habilita la API de Eventarc y la API de Eventarc Publishing.

Consola

Habilitar las APIs

gcloud

gcloud services enable eventarc.googleapis.com eventarcpublishing.googleapis.com

Habilitar eventos de fuentes de Google

Para publicar eventos de 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 de un bus avanzado de Eventarc concreto.

Puedes habilitar la publicación de eventos de fuentes de Google de las siguientes formas:

  • En la Google Cloud consola
  • Usando la CLI de Google Cloud en tu terminal o en Cloud Shell
  • Enviando una solicitud a la API de Eventarc

Consola

  1. En la Google Cloud consola, ve a la página Eventarc > Bus.

    Ir a Bus

  2. Puedes crear un bus o, si vas a actualizar uno, haz clic en Editar.

  3. En la página Editar autobús, para añadir una fuente de mensajes, haz clic en Añadir fuente.

    1. En el panel Añadir fuente de mensajes, en el proveedor de mensajes de la API de Google, acepta el valor predeterminado google-api-source o introduce otro nombre de fuente de mensajes.
    2. Haz clic en Crear.
  4. Haz clic en Guardar.

gcloud

  1. Abre la terminal.

  2. Para habilitar los eventos de fuentes de Google, usa el comando gcloud eventarc google-api-sources create:

    gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \
        --destination-message-bus=BUS_NAME \
        --destination-message-bus-project=BUS_PROJECT_ID

    Haz los cambios siguientes:

    • GOOGLE_API_SOURCE_NAME: el ID o el identificador completo de tu recurso GoogleApiSource, que representa una suscripción a eventos de la API de Google para un bus concreto.
    • BUS_NAME: el ID o el identificador completo del bus al que quieres suscribirte para recibir eventos de la API de Google.
    • BUS_PROJECT_ID: el ID del proyecto Google Cloud del autobús

    Opcional: También puedes usar las siguientes marcas:

    • --async para volver del comando inmediatamente, sin esperar a que se complete la operación en curso.
    • --crypto-key para especificar el nombre completo de una clave de cifrado gestionada 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 o EMERGENCY. Para obtener más información, consulta LogSeverity.

API REST

Para habilitar los eventos de fuentes de Google, usa el método projects.locations.googleApiSources.create.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • GOOGLE_API_SOURCE_NAME: el nombre visible del recurso GoogleApiSource, que representa una suscripción a eventos de la API de Google de un bus concreto (por ejemplo, my_google_source).
  • LABEL_KEY y LABEL_VALUE: opcionales. Un mapa de pares clave-valor de etiquetas que te ayuda a organizar tus recursos. Google Cloud Para obtener más información, consulta ¿Qué son las etiquetas?
  • ANNOTATION_KEY y ANNOTATION_VALUE: opcionales. 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: el identificador completo del bus de Eventarc Advanced en el que se deben publicar los eventos de origen de Google, con el formato projects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME. Para obtener más información, consulta el artículo Crear un bus para enrutar mensajes.
  • ENCRYPT_KEY: opcional. Clave de Cloud KMS que debe usar el recurso GoogleApiSource para cifrar los datos. El formato es projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para obtener más información, consulta el artículo Usar claves de cifrado gestionadas por el cliente.
  • PROJECT_ID: el Google Cloud ID del proyecto en el que se creará el recurso GoogleApiSource.
  • LOCATION: la región admitida en la que se creará el recurso GoogleApiSource. Por ejemplo, us-central1.
  • LOG_SEVERITY: opcional. La gravedad mínima del evento descrito en una entrada de registro. Uno de los valores NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT o EMERGENCY. El valor predeterminado es NONE. Para obtener más información, consulta LogSeverity.

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, despliega una de estas opciones:

Si la solicitud se completa correctamente, en el cuerpo de la respuesta se incluye 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 se recogen y se publican en el bus los eventos de las fuentes de Google que se encuentran en el mismo Google Cloud proyecto que el recursoGoogleApiSource.

Inhabilitar eventos de fuentes de Google

Para inhabilitar la publicación de eventos de fuentes de Google en un bus avanzado de Eventarc de un proyecto específico, debe eliminar el recurso GoogleApiSource.Google Cloud

Puede inhabilitar la publicación de eventos de fuentes de Google de las siguientes formas:

  • En la Google Cloud consola
  • Usando la CLI gcloud en tu terminal o en Cloud Shell
  • Enviando una solicitud a la API de Eventarc

Consola

  1. En la Google Cloud consola, ve a la página Eventarc > Detalles del bus.

    Ir a Detalles del autobús

  2. Haz clic en Editar.

  3. En la página Editar bus, para eliminar el proveedor de mensajes de la API de Google, haga clic en Eliminar recurso en la fuente de mensajes google-api-source (o el nombre que le haya dado).

  4. Cuando se te pida que elimines el recurso, haz clic en Confirmar.

  5. Haz clic en Guardar.

gcloud

  1. Abre la terminal.

  2. Puedes inhabilitar los eventos de fuentes de Google con el comando gcloud eventarc google-api-sources delete:

    gcloud eventarc google-api-sources delete GOOGLE_API_SOURCE_NAME \
        --location=REGION

    Haz los cambios siguientes:

    • GOOGLE_API_SOURCE_NAME: ID o identificador completo del recurso GoogleApiSource
    • REGION: la ubicación del GoogleApiSource recurso

API REST

Para inhabilitar los eventos de fuentes de Google, utiliza el método projects.locations.googleApiSources.delete.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: el ID del proyecto en el que se crea el recurso GoogleApiSource. Google Cloud
  • LOCATION: la región en la que se crea el recurso GoogleApiSource. Por ejemplo, us-central1.
  • GOOGLE_API_SOURCE_NAME: el nombre del recurso GoogleApiSource que quieras eliminar.

Para enviar tu solicitud, despliega una de estas opciones:

Si la solicitud se completa correctamente, en el cuerpo de la respuesta se incluye 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
}

Los eventos de las fuentes de Google del mismo proyecto que el recurso eliminado ya no se recogen ni se publican. Google Cloud GoogleApiSource

Siguientes pasos