Crear un bus para enrutar mensajes

Un bus avanzado de Eventarc te permite centralizar, monitorizar y rastrear el flujo de mensajes a través de tu sistema, y actúa como un router. Recibe eventos de una fuente de mensajes o publicados por un proveedor y los evalúa según un registro. Una inscripción identifica una suscripción a un bus concreto y define los criterios de coincidencia de los mensajes, lo que hace que se enruten en consecuencia. Para obtener más información, consulta Crear un registro para recibir eventos.

Los proveedores de eventos y los destinos de tu proyecto o de otros proyectos pueden usar un autobús. Para obtener más información, consulta Diseños de proyectos.

Roles obligatorios

Un rol de Gestión de Identidades y Accesos (IAM) contiene un conjunto de permisos que te permiten realizar acciones específicas en los Google Cloud recursos. Se necesitan los siguientes roles y permisos para crear un bus para enrutar mensajes:

  • Para obtener el permiso que necesitas para crear un bus, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Eventarc (roles/eventarc.admin) o Administrador de bus de mensajes de Eventarc (roles/eventarc.messageBusAdmin) en tu proyecto de bus. Estos roles predefinidos contienen el permiso eventarc.messageBuses.create, que es necesario para crear un bus.
  • Para obtener el permiso que necesitas para usar un bus, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Usuario del bus de mensajes de Eventarc (roles/eventarc.messageBusUser) en tu proyecto de bus. Este rol predefinido contiene el permiso eventarc.buses.use, que es necesario para usar un bus.
  • Para crear una canalización y un registro, se necesitan permisos adicionales. Para obtener más información, consulta los roles obligatorios al crear un registro.

Para obtener más información sobre cómo conceder roles, consulta el artículo sobre cómo gestionar el acceso. También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Crear un autobús

Puedes crear un bus 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. Haz clic en Crear bus.

  3. En la página Crear un bus, haz lo siguiente:

    1. Escribe un nombre de empresa. Es el ID de tu autobús.
    2. Opcional: Introduce un nombre visible del bus, que se muestra en la página Detalles del bus.
    3. En la lista Región, selecciona una región admitida para implementar tu bus.
    4. En la lista Gravedad del registro, selecciona la gravedad mínima de los eventos descritos en las entradas de registro. El valor predeterminado es Ninguno. Para obtener más información, consulta LogSeverity.
    5. En Encriptado, acepta el valor predeterminado Google-managed encryption key o selecciona Clave de Cloud KMS. Para obtener más información, consulta Usar claves de cifrado gestionadas por el cliente (CMEK).
    6. Si seleccionas Clave de Cloud KMS, haz lo siguiente:

      1. En la lista Tipo de clave, selecciona un método para gestionar tus claves.

        Puedes gestionar tus claves manualmente o usar Autokey, que te permite generar conjuntos de claves y claves bajo demanda. Si la opción Cloud KMS con Autokey está inhabilitada, significa que aún no se ha integrado con el tipo de recurso actual.

      2. En Seleccionar una clave de Cloud KMS, elige una clave.

        Ten en cuenta que debes seleccionar una región para poder ver tus claves gestionadas por el cliente.

      3. Opcional: Para introducir manualmente el nombre del recurso de la clave, en la lista Seleccionar una clave gestionada por el cliente, haz clic en Introducir clave manualmente e introduce el nombre de la clave en el formato especificado.

      4. Si se te pide, concede el rol cloudkms.cryptoKeyEncrypterDecrypter al agente de servicio de Eventarc.

    7. Opcional: 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.
      2. Haz clic en Crear.

        De esta forma, se habilita la recogida automática de eventos procedentes directamente de fuentes de Google.

        Tenga en cuenta que solo se publican los eventos de los recursos del mismo proyecto que el bus. Google CloudPara obtener más información, consulta Publicar eventos de fuentes de Google.

    8. Opcional: Para añadir etiquetas, haz clic en Añadir etiqueta. Las etiquetas son pares clave-valor que te ayudan a organizar tus recursosGoogle Cloud . Para obtener más información, consulta ¿Qué son las etiquetas?

  4. Haz clic en Crear.

gcloud

  1. Abre la terminal.

  2. Crea un bus con el comando gcloud eventarc message-buses create.

    gcloud eventarc message-buses create BUS_NAME \
        --location=REGION
    

    Haz los cambios siguientes:

    • BUS_NAME: el ID o el identificador completo del bus.
    • REGION: a supported location for the bus

      También puedes definir la propiedad de ubicación de Google Cloud CLI:

      gcloud config set eventarc/location REGION
      

    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 la gravedad mínima de los eventos descritos en las entradas de registro. Debe ser 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.

API REST

Para crear un bus, usa el método projects.locations.messageBuses.create.

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

  • BUS_NAME: el nombre visible de tu empresa, por ejemplo, my_bus.
  • 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 el artículo ¿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.
  • ENCRYPT_KEY: opcional. Una clave de Cloud KMS que el bus debe usar para encriptar datos con el formato 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: tu ID de proyecto Google Cloud.
  • LOCATION: la región en la que se va a crear el bus. 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:

{
  "display_name": "BUS_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "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/messageBuses/BUS_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Eliminar un autobús

Puedes eliminar un autobús 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 > Bus.

    Ir a Bus

    Se abrirá la página Detalles del autobús.

  2. Haz clic en Eliminar.

  3. Cuando se te pida que elimines el bus, marca la casilla ¿Quieres continuar? para confirmar que las fuentes de mensajes configuradas para usar el bus ya no podrán hacerlo.

  4. Para confirmar la eliminación, introduce Delete.

  5. Haz clic en Eliminar.

gcloud

  1. Abre la terminal.

  2. Elimina un autobús con el comando gcloud eventarc message-buses delete.

    gcloud eventarc message-buses delete BUS_NAME \
        --location=REGION
    

    Haz los cambios siguientes:

    • BUS_NAME: el ID o el identificador completo del bus.
    • REGION: la ubicación admitida del autobús

API REST

Para eliminar un autobús, utiliza el método projects.locations.messageBuses.delete.

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

  • PROJECT_ID: tu ID de proyecto Google Cloud.
  • LOCATION: la región en la que se crea el autobús. Por ejemplo, us-central1.
  • BUS_NAME: el nombre del autobús 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/messageBuses/BUS_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Siguientes pasos