Publica eventos desde fuentes de Google

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 a través de 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 Tipos de eventos de Google compatibles con Eventarc.

Ten en cuenta lo siguiente:

  • Hay un límite de un recurso GoogleApiSource por proyecto de Google Cloud.
  • Puedes publicar eventos de fuentes de Google solo en el mismo proyecto de Google Cloud que el recurso GoogleApiSource.
  • Puedes publicar eventos en un bus que se encuentra en un proyecto de Google Cloud diferente al que existe el recurso GoogleApiSource. Puedes configurar esto con la CLI de gcloud o enviando una solicitud a la API de Eventarc.

Habilita 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 proyecto de Google Cloud 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 la terminal o en Cloud Shell
  • Envía una solicitud a la API de Eventarc.

Console

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

    Ir a Bus

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

  3. En la página Editar bus, para agregar una fuente de mensajes, haz clic en Agregar fuente.

    1. En el panel Agregar fuente de mensajes, para el proveedor de mensajes de la API de Google, acepta el valor predeterminado de google-api-source o ingresa un nombre de fuente de mensajes diferente.
    2. Haz clic en Crear.
  4. Haz clic en Guardar.

gcloud

  1. Abre una terminal.

  2. Puedes habilitar los eventos de las 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: El ID o el identificador completamente calificado de tu recurso GoogleApiSource que representa una suscripción a eventos de la API de Google para un bus en particular
    • BUS_NAME: El ID o el identificador completamente calificado del bus para el que deseas suscribirte a los eventos de la API de Google
    • BUS_PROJECT_ID: Es el Google Cloud ID del proyecto del bus.

    Opcional: También puedes usar las siguientes marcas:

    • --async para mostrar el comando de inmediato, sin 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, consulta LogSeverity.

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 recurso GoogleApiSource que representa una suscripción a eventos de la API de Google para un bus en particular, por ejemplo, my_google_source.
  • LABEL_KEY y LABEL_VALUE: Opcional. Un mapa de pares clave-valor de etiquetas que te ayuda a organizar tus Google Cloud recursos. Para obtener más información, consulta ¿Qué son las etiquetas?
  • ANNOTATION_KEY y ANNOTATION_VALUE: Opcional. Un mapa de pares clave-valor de anotación de texto de formato libre. Puedes usarlos para adjuntar información arbitraria asociada con el recurso. Para obtener más información, consulta Anotaciones.
  • DESTINATION: Es el identificador completamente calificado del bus de Eventarc Advanced al que se deben publicar los eventos de origen de Google en el formato projects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME. Para obtener más información, consulta Cómo crear un bus para enrutar mensajes.
  • ENCRYPT_KEY: es opcional. Una clave de Cloud KMS que el recurso GoogleApiSource debe usar para la encriptación de datos en el formato projects/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 Google Clouden el que se creará el recurso GoogleApiSource.
  • LOCATION: Es la región compatible en la que se creará el recurso GoogleApiSource, por ejemplo, us-central1.
  • LOG_SEVERITY: es opcional. Es la gravedad mínima del evento que se describe en una entrada de registro. Es uno de los siguientes: 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, 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
}

Los eventos de las fuentes de Google en el mismo proyecto de Google Cloud que el recurso GoogleApiSource ahora se recopilan y publican en el bus.

Inhabilita eventos de fuentes de Google

Para inhabilitar la publicación de eventos de fuentes de Google en un proyecto de Google Cloud específico a un bus de Eventarc Advanced, 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 la CLI de gcloud en la terminal o en Cloud Shell
  • Envía una solicitud a la API de Eventarc.

Console

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

    Ir a los detalles del autobús

  2. Haz clic en Editar.

  3. En la página Editar 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).

  4. En el mensaje Borrar recurso, haz clic en Confirmar.

  5. Haz clic en Guardar.

gcloud

  1. Abre una terminal.

  2. Para inhabilitar eventos de fuentes de Google, usa 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: El ID o el identificador completamente calificado del recurso GoogleApiSource
    • REGION: la ubicación del recurso GoogleApiSource

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 Google Cloud proyecto en el que se crea el recurso GoogleApiSource.
  • LOCATION: Es la región en la que se crea el recurso GoogleApiSource, por ejemplo, us-central1.
  • GOOGLE_API_SOURCE_NAME: Es el nombre del recurso GoogleApiSource 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
}

Los eventos de las fuentes de Google en el mismo proyecto de Google Cloud que el recurso GoogleApiSource borrado ya no se recopilan ni publican.

¿Qué sigue?