Crear una inscripción para recibir eventos

Un registro identifica una suscripción a un autobús concreto. La inscripción define los criterios de coincidencia que determinan qué mensajes se enrutan a un destino. También especifica el flujo de procesamiento por el que se deben enrutar los mensajes coincidentes. Una canalización le permite configurar un destino y también le ofrece la opción de transformar los eventos coincidentes antes de enviarlos al destino.

Ten en cuenta lo siguiente:

  • Una canalización y un registro deben estar en el mismo proyecto Google Cloud . El bus al que se suscribe puede estar en el mismo proyecto o en otro.
  • Se puede usar una misma canalización para varias inscripciones.
  • Solo puede haber un destino para los mensajes que se enrutan a través de una canalización.

Antes de empezar

Antes de configurar una canalización o un registro, debes haber creado un bus avanzado de Eventarc.

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 una canalización y un registro para enrutar mensajes:

  • Para obtener el permiso que necesitas para crear una canalización, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Desarrollador de Eventarc (roles/eventarc.developer) en tu proyecto de canalización. Este rol predefinido contiene el permiso eventarc.pipelines.create, que es necesario para crear una canalización.
  • Para obtener el permiso que necesitas para crear una inscripción, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Desarrollador de Eventarc (roles/eventarc.developer) en tu proyecto de inscripción. Este rol predefinido contiene el permiso eventarc.enrollments.create, que es necesario para crear una inscripción.
  • 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 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 registro y un flujo de procesamiento

Puedes crear una canalización y una inscripción 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

En la Google Cloud consola, puedes crear tanto la canalización como el registro al mismo tiempo desde la página Canalizaciones.

  1. Para crear una inscripción, en la consola de Google Cloud , ve a la página Eventarc > Pipelines.

    Ir a Pipelines

  2. Haz clic en Crear canalización.

  3. En el panel Detalles de la canalización, haz lo siguiente:

    1. Asigne un nombre a la canalización. Es el ID de tu flujo de trabajo.
    2. En la lista Región, selecciona una región en la que desplegar tu canalización. La canalización debe crearse en la misma región que el bus. Para obtener más información, consulta Ubicaciones avanzadas de Eventarc.
    3. Opcional: 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.
    4. Opcional: En la sección Política de reintentos, puedes modificar la configuración predeterminada para reintentar eventos.
    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 Autoclave está inhabilitada, significa que aún no se ha integrado con el tipo de recurso actual.

      2. En Selecciona una clave gestionada por el cliente, 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 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?

    8. Haz clic en Continuar.

  4. En el panel Registros, haz lo siguiente:

    1. Haz clic en Añadir una inscripción.
    2. Escriba un nombre de registro.
    3. En la lista Autobús, selecciona un autobús al que quieras suscribirte.
    4. En el campo Expresión CEL, escribe una expresión de evaluación con CEL. Por ejemplo:

      message.type == "google.cloud.dataflow.job.v1beta3.statusChanged"

      Tenga en cuenta que la expresión predeterminada, true, indica que todos los mensajes se enrutan sin filtrar.

    5. Haz clic en Listo.

    6. Puedes añadir otro registro o hacer clic en Continuar.

  5. Opcional: En el panel Mediación de eventos, haga lo siguiente o haga clic en Continuar:

    1. Seleccione la casilla Aplicar una transformación.
    2. En la lista Formato de entrada, seleccione el formato aplicable.

      Tenga en cuenta que, al aplicar una transformación, debe especificar un formato de datos de entrada para una canalización y que todos los eventos deben coincidir con ese formato.

    3. En el caso de los formatos Avro o Protobuf, debe especificar un esquema de entrada. También puede subir un esquema de entrada. Para obtener más información, consulta Formatear eventos recibidos.

    4. En el campo Expresión CEL, escribe una expresión de transformación con CEL.

    5. Haz clic en Continuar.

  6. En el panel Destino, haga lo siguiente:

    1. En la lista Tipo de destino, selecciona un tipo de destino al que enrutar los mensajes. En función del tipo de destino, haga lo siguiente:

      • Endpoint HTTP: especifica el URI de destino. El host puede ser una dirección IP estática a la que se pueda acceder desde una red de nube privada virtual (VPC) o el nombre de host interno del sistema de nombres de dominio (DNS) de un servicio que se pueda resolver mediante Cloud DNS.

        Por ejemplo, puedes orientar los eventos a una URL de servicio de Cloud Run que los reciba como solicitudes HTTP POST. Usa la URL estable y asignada automáticamenterun.app que se proporciona en el primer despliegue del servicio alojado en Cloud Run. También puede orientar los eventos a una tabla de BigQuery que los reciba como solicitudes HTTP POST. Define un enlace de mensaje para crear la solicitud HTTP de la API de BigQuery.

        También puedes usar este tipo de destino para especificar un endpoint HTTP para funciones de Cloud Run (1.ª gen. y versión actual). Cuando especificas un activador HTTP para una función de Cloud Run, se le asigna una URL en la que puede recibir solicitudes.

      • Bus de Eventarc Advanced: selecciona un bus de Eventarc Advanced. El bus debe desplegarse en el mismo proyecto y región que la canalización.

      • Flujo de trabajo de Workflows: selecciona un flujo de trabajo de Workflows. Puedes activar la ejecución de un flujo de trabajo, que es una única ejecución de la lógica contenida en una definición de flujo de trabajo. El flujo de trabajo debe implementarse en el mismo proyecto que la canalización.

      • Tema de Pub/Sub: selecciona o crea un tema de Pub/Sub. El tema debe crearse antes de que se puedan enrutar mensajes a él y debe estar en el mismo proyecto que la canalización. Si usa un esquema de temas, asegúrese de transformar su mensaje de evento correctamente.

      • Servicio de Cloud Run (vía HTTP): selecciona un servicio de Cloud Run que recibirá eventos como solicitudes HTTP POST enviadas a su ruta de URL raíz (/). También puedes especificar una ruta de URL relativa en el servicio de destino al que se deben enviar los eventos.

      • Tarea de Cloud Run (vía HTTP): selecciona una tarea de Cloud Run que recibirá eventos como solicitudes HTTP POST.

    2. Si procede, en la lista Formato de salida, seleccione un formato.

      Ten en cuenta que, si no se especifica un formato de datos de entrada para una canalización, no se podrá definir un formato de salida.

    3. Si procede, aplica un enlace de mensaje. Para obtener más información, consulta Definir un enlace de mensaje.

    4. Para habilitar la autenticación, marca la casilla Habilitar autenticación.

      1. En la lista Encabezado de autorización, selecciona el tipo de token que quieres generar y adjuntar como encabezado Authorization en la solicitud HTTP:

        • Por lo general, solo se debe usar un token de OAuth cuando se llama a las APIs de Google alojadas en *.googleapis.com. También puede especificar el ámbito de este token. De lo contrario, se usará el valor predeterminado https://www.googleapis.com/auth/cloud-platform. En el caso de los servicios deGoogle Cloud , se recomienda usar el ámbito https://www.googleapis.com/auth/cloud-platform, que incluye todas las APIs de Google Cloud , junto con Gestión de Identidades y Accesos (IAM), que proporciona un control de acceso detallado.

          Ten en cuenta que todas las solicitudes a otro bus, Pub/Sub o Workflows de Eventarc Advanced deben tener un encabezado de autorización HTTP que contenga un token de OAuth firmado por Google para una de las cuentas de servicio autorizadas.

        • Un token de OIDC se puede usar en muchos casos, incluidos los endpoints en los que quieras validar el token tú mismo. Además, especifique la audiencia a la que va dirigido este token. Por lo general, debe coincidir con la URL de la canalización de destino. Si no se especifica, se usa toda la URL, incluidos los parámetros de solicitud.

          Ten en cuenta que Cloud Run realiza una comprobación de gestión de identidades y accesos en cada solicitud. Puedes usar el permiso run.routes.invoke para configurar quién puede acceder a tu servicio de Cloud Run de cualquiera de las siguientes formas:

          • Concede el permiso para seleccionar cuentas de servicio o grupos para permitir el acceso al servicio. Todas las solicitudes deben tener un encabezado de autorización HTTP que contenga un token de OpenID Connect firmado por Google para una de las cuentas de servicio autorizadas.

          • Concede el permiso a allUsers para permitir el acceso sin autenticar.

          Para obtener más información, consulta Control de acceso para Cloud Run.

        Más información sobre los tipos de token

      2. En la lista Cuenta de servicio, selecciona la cuenta de servicio que invocará tu servicio de destino. También puedes crear una cuenta de servicio.

        Especifica el correo de la cuenta de servicio de gestión de identidades y accesos asociada a la canalización y a la que has concedido previamente los roles específicos que requiere Eventarc Advanced.

  7. Haz clic en Crear.

gcloud

Cuando uses gcloud CLI, primero crea la canalización y, a continuación, crea el registro con los comandos adecuados.

Flujo de procesamiento

  1. Abre la terminal.

  2. Crea una canalización con el comando gcloud eventarc pipelines create:

    gcloud eventarc pipelines create PIPELINE_NAME \
        --destinations=DESTINATION_KEY \
        --location=LOCATION

    Haz los cambios siguientes:

    • PIPELINE_NAME: el ID de la canalización o un nombre completo
    • DESTINATION_KEY: uno o varios pares clave-valor para configurar un destino para la canalización

      Debe definir solo una de las siguientes claves:

      • http_endpoint_uri: un URI de destino. El host puede ser una dirección IP estática a la que se pueda acceder desde una red de nube privada virtual (VPC) o el nombre de host interno del sistema de nombres de dominio (DNS) de un servicio que se pueda resolver mediante Cloud DNS. También puedes definir http_endpoint_message_binding_template para especificar un enlace de mensaje.

        Puedes usar esta clave para orientar una URL de servicio de Cloud Run que recibirá eventos como solicitudes HTTP POST. Usa la URL estable y asignada automáticamenterun.app que se proporciona en la primera implementación del servicio alojado en Cloud Run. También puede orientar los eventos a una tabla de BigQuery que los reciba como solicitudes HTTP POST. Define un enlace de mensaje para crear la solicitud HTTP de la API de BigQuery.

        También puede usar este tipo de destino para especificar un endpoint HTTP para las funciones de Cloud Run (1.ª gen. y versión actual). Cuando especificas un activador HTTP para una función de Cloud Run, se le asigna una URL en la que puede recibir solicitudes.

      • message_bus—el ID de un bus de Eventarc Advanced. El bus debe desplegarse en el mismo proyecto y región que la canalización.

      • pubsub_topic: el ID de un tema de Pub/Sub. El tema debe crearse antes de que se puedan enrutar mensajes a él y, si se usa un esquema de tema, asegúrate de transformar el mensaje de evento correctamente.

      • workflow—el ID de un flujo de trabajo de Workflows. Puedes activar la ejecución de un flujo de trabajo, que es una única ejecución de la lógica contenida en una definición de flujo de trabajo. El flujo de trabajo debe desplegarse en el mismo proyecto que la canalización.

      Para habilitar la autenticación, puedes definir una de las siguientes claves:

      • google_oidc_authentication_service_account—la dirección de correo de la cuenta de servicio que se usa para generar un token de OIDC que se puede usar en muchos casos, incluidos los endpoints en los que quieres validar el token tú mismo. También puedes definir google_oidc_authentication_audience para especificar la audiencia a la que va dirigido este token. Por lo general, debe coincidir con la URL de la canalización de destino. Si no se especifica, se usa toda la URL, incluidos los parámetros de solicitud.

        Ten en cuenta que Cloud Run realiza una comprobación de gestión de identidades y accesos en cada solicitud. Puedes usar el permiso run.routes.invoke para configurar quién puede acceder a tu servicio de Cloud Run de cualquiera de las siguientes formas:

        • Concede el permiso para seleccionar cuentas de servicio o grupos para permitir el acceso al servicio. Todas las solicitudes deben tener un encabezado de autorización HTTP que contenga un token de OpenID Connect firmado por Google para una de las cuentas de servicio autorizadas.

        • Concede el permiso a allUsers para permitir el acceso sin autenticar.

        Para obtener más información, consulta Control de acceso para Cloud Run .

      • oauth_token_authentication_service_account: el correo de la cuenta de servicio que se usa para generar un token de OAuth, que solo se debe usar al llamar a las APIs de Google alojadas en *.googleapis.com. También puedes definir oauth_token_authentication_scope para especificar el ámbito de este token. De lo contrario, el valor predeterminado es https://www.googleapis.com/auth/cloud-platform. En el caso de los servicios deGoogle Cloud , se recomienda usar el ámbito https://www.googleapis.com/auth/cloud-platform, que incluye todas las APIs de Google Cloud , junto con Gestión de Identidades y Accesos (IAM), que proporciona un control de acceso detallado.

        Ten en cuenta que todas las solicitudes a otro bus, Pub/Sub o Workflows de Eventarc Advanced deben tener un encabezado de autorización HTTP que contenga un token de OAuth firmado por Google para una de las cuentas de servicio autorizadas.

        Más información sobre los tipos de token

      Opcional: Puedes definir una de las siguientes claves:

      • output_payload_format_avro_schema_definition
      • output_payload_format_json
      • output_payload_format_protobuf_schema_definition

        Ten en cuenta que, si defines un formato de salida, también debes especificar un formato de entrada (consulta las siguientes marcas input-payload-format-*).

      Opcional: Si http_endpoint_uri no se usa como clave de destino, puedes definir las siguientes claves:

      • project: el ID de proyecto del recurso de destino. De forma predeterminada, se usa el ID de proyecto de la canalización. Google Cloud
      • location: la ubicación del recurso de destino. De forma predeterminada, se usa la ubicación de la canalización.
    • LOCATION: una región compatible con Eventarc Advanced

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

      gcloud config set eventarc/location LOCATION
      

    Opcional: 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.
    • --mediations para aplicar una transformación; transformation_template es la única plantilla admitida y solo se admite una mediación por canalización. Por ejemplo:

      --mediations=transformation_template='message.removeFields(["id\ ","credit_card_number","age"])'

      Ten en cuenta que, si aplicas una transformación, debes usar una de las siguientes marcas para especificar un formato de entrada.

    • Una de las siguientes opciones para especificar un formato de entrada:

      • --input-payload-format-avro-schema-definition
      • --input-payload-format-json
      • --input-payload-format-protobuf-schema-definition
    • --max-retry-attempts, --max-retry-delay y --min-retry-delay para volver a intentar los eventos

    Por ejemplo:

    gcloud eventarc pipelines create my-pipeline \
        --destinations=http_endpoint_uri='https://example-endpoint.com',oauth_token_authentication_service_account=example-service-account@example-project.gserviceaccount.iam.com,oauth_token_authentication_scope='https://www.googleapis.com/auth/cloud-platform',output_payload_format_avro_schema_definition='{"type": "record","name": "my_record", "fields": [{"name": "my_field", "type":"string"}]}' \
        --input-payload-format-avro-schema-definition='{"type":"record", "name": "my_record", "fields": [{"name": "my_field","type": "string"}]}' \
        --location=us-central1 \
        --async
    

    Para obtener más información y ejemplos, consulta la documentación de la CLI de gcloud.

Registrarme

  1. Abre la terminal.

  2. Crea un registro con el comando gcloud eventarc enrollments create:

    gcloud eventarc enrollments create ENROLLMENT_NAME \
        --cel-match=MATCH_EXPRESSION \
        --destination-pipeline=PIPELINE_NAME \
        --message-bus=BUS_NAME \
        --message-bus-project=PROJECT_ID \
        --location=LOCATION

    Haz los cambios siguientes:

    • ENROLLMENT_NAME: el ID de la inscripción o un nombre completo
    • MATCH_EXPRESSION: la expresión de coincidencia de esta inscripción con CEL. Por ejemplo: "message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'"
    • PIPELINE_NAME: el ID de la canalización de destino o su nombre completo para este registro
    • BUS_NAME: el ID del bus avanzado de Eventarc o su nombre completo
    • PROJECT_ID: el ID de proyecto del bus Google Cloud
    • LOCATION: una región compatible con Eventarc Advanced

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

      gcloud config set eventarc/location LOCATION
      

    Opcional: Puedes usar la siguiente marca:

    • --async para volver del comando inmediatamente, sin esperar a que se complete la operación en curso

    Por ejemplo:

    gcloud eventarc enrollments create my-enrollment \
        --cel-match="message.type == 'google.cloud.dataflow.job.v1beta3.statusChanged'" \
        --destination-pipeline=my-pipeline \
        --message-bus=my-message-bus \
        --message-bus-project=another-google-cloud-project \
        --location=us-central1 \
        --async
    

API REST

Cuando envíe solicitudes a la API Eventarc, primero cree la canalización y, a continuación, la inscripción.

Flujo de procesamiento

Para crear una canalización, usa el método projects.locations.pipelines.create.

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

  • name: el nombre completo del recurso de la canalización con el formato projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de proyecto del proyecto de la canalización Google Cloud
    • LOCATION: la región en la que se va a implementar la canalización. Por ejemplo, us-central1.
    • PIPELINE_NAME: el nombre del flujo de procesamiento.
  • 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.
  • 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.
  • destinations: el destino al que se reenviarán los mensajes. También puedes definir messageBindingTemplate para especificar un enlace de mensaje. Para obtener más información, consulta el Destination destino. Solo se admite un destino:
    • httpEndpoint: un URI de destino (HTTP_URI). El host puede ser una dirección IP estática a la que se pueda acceder desde una red de nube privada virtual (VPC) o el nombre de host interno del sistema de nombres de dominio (DNS) de un servicio que se pueda resolver mediante Cloud DNS.

      Por ejemplo, puedes orientar los eventos a una URL de servicio de Cloud Run que los reciba como solicitudes HTTP POST. Usa la URL estable asignada automáticamenterun.app que se proporciona en el primer despliegue del servicio alojado en Cloud Run. También puede orientar los anuncios a una tabla de BigQuery que recibirá eventos como solicitudes HTTP POST. Define un enlace de mensaje para crear la solicitud HTTP de la API de BigQuery.

      También puedes usar este tipo de destino para especificar un endpoint HTTP para las funciones de Cloud Run (1.ª gen. y versión actual). Cuando especifica un activador HTTP para una función de Cloud Run, se le asigna una URL a la función para que pueda recibir solicitudes.

    • messageBus: un bus de Eventarc Advanced. El bus debe desplegarse en el mismo proyecto y región que la canalización.
    • topic: un tema de Pub/Sub que primero se debe crear en el mismo proyecto que la canalización. Si usa un esquema de temas, asegúrese de transformar su mensaje de evento correctamente.
    • workflow: a Workflows workflow. Puedes activar la ejecución de un flujo de trabajo, que es una única ejecución de la lógica contenida en una definición de flujo de trabajo. El flujo de trabajo debe implementarse en el mismo proyecto que la canalización.
  • SERVICE_ACCOUNT_EMAIL: el nombre del correo de la cuenta de servicio que se usa para generar un token de OIDC que se puede usar en muchos casos, incluidos los endpoints en los que quieras validar el token tú mismo. También puedes definir audience para especificar la audiencia a la que va dirigido este token. Por lo general, debe coincidir con la URL de la canalización de destino. Si no se especifica, se usa la URL completa, incluidos los parámetros de solicitud.

    También puedes usar oauthToken para especificar el correo de la cuenta de servicio que se usa para generar un token de OAuth que generalmente solo se debe usar al llamar a las APIs de Google alojadas en *.googleapis.com. También puedes definir scope para especificar el ámbito de este token. De lo contrario, se usará https://www.googleapis.com/auth/cloud-platform de forma predeterminada. En el caso de los servicios de Google Cloud, se recomienda usar el ámbito https://www.googleapis.com/auth/cloud-platform, que incluye todas las APIs de Google Cloud , junto con Gestión de Identidades y Accesos (IAM), que proporciona un control de acceso detallado.

    Ten en cuenta que todas las solicitudes a otro bus de Eventarc Advanced, Pub/Sub o Workflows deben tener un encabezado de autorización HTTP que contenga un token de OAuth firmado por Google para una de las cuentas de servicio autorizadas.

    Más información sobre los tipos de token

Cuerpo JSON de la solicitud:

{
  "name": "projects/PROJECT_ID/regions/LOCATION/pipelines/PIPELINE_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "loggingConfig": {"logSeverity":"LOG_SEVERITY"},
  "destinations": [{"httpEndpoint": {"uri": "HTTP_URI"},
  "authenticationConfig": {"googleOidc": {"serviceAccount": "SERVICE_ACCOUNT_EMAIL"}}}]
}

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/pipelines/PIPELINE_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Registrarme

Para crear una inscripción, usa el método projects.locations.enrollments.create.

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

  • ENROLLMENT_NAME: el nombre visible de tu registro. Por ejemplo, my_enrollment.
  • MATCH_EXPRESSION: una expresión CEL que identifica a qué mensajes se aplica este registro. Por ejemplo, message.type == 'hello-world-type'.
  • destination: nombre completo del recurso de la canalización de destino con el formato projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME.

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de proyecto del proyecto de la canalización Google Cloud
    • LOCATION: la región en la que se implementa la canalización. Por ejemplo, us-central1.
    • PIPELINE_NAME: el nombre de la canalización
  • message_bus: nombre completo del recurso del bus que identifica la fuente de los mensajes con el formato projects/BUS_PROJECT_ID/locations/BUS_LOCATION/messageBuses/BUS_NAME.

    Haz los cambios siguientes:

    • BUS_PROJECT_ID: el Google Cloud ID de proyecto del proyecto de bus
    • BUS_LOCATION: la región en la que se ha implementado el autobús. Por ejemplo, us-central1.
    • BUS_NAME: el nombre del bus de mensajes

Cuerpo JSON de la solicitud:

{
  "display_name": "ENROLLMENT_NAME",
  "cel_match": "MATCH_EXPRESSION",
  "message_bus": "projects/BUS_PROJECT_ID/locations/BUS_LOCATION/messageBuses/BUS_NAME",
  "destination": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME"
}

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/enrollments/ENROLLMENT_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Mostrar inscripciones

Puedes consultar las suscripciones 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. Para ver las inscripciones de una canalización específica, en la consola, Google Cloud vaya a la página Eventarc > Pipelines (Canalizaciones).

    Ir a Pipelines

  2. Haga clic en el nombre de la canalización de la que quiera obtener una lista de registros.

    Se abrirá la página Detalles del flujo de procesamiento.

    En la pestaña Registros, se muestran todos los registros asociados a la canalización.

gcloud

  1. Abre la terminal.

  2. Consulta las inscripciones con el comando gcloud eventarc enrollments list:

    gcloud eventarc enrollments list \
        --location=LOCATION

    Sustituye LOCATION por una región de Eventarc Advanced compatible.

API REST

Para enumerar las inscripciones, usa el método projects.locations.enrollments.list.

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 crean las inscripciones. Por ejemplo, us-central1.

Para enviar tu solicitud, despliega una de estas opciones:

Si la salida del comando es correcta, en el cuerpo de la respuesta se incluirán instancias de Enrollment y la respuesta debería ser similar a la siguiente:

{
  "enrollments": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/enrollments/ENROLLMENT_NAME",
      "uid": "06e396f5-2d4f-43d2-961f-fd2c88403326",
      "createTime": "2025-03-26T17:57:25.214845320Z",
      "updateTime": "2025-03-26T17:57:45.136172180Z",
      "celMatch": "message.type == \"hello-world-type\"",
      "messageBus": "projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME",
      "destination": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME"
    },
    {...}
  ]
}

Eliminar una inscripción

Puedes eliminar un registro 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. Para eliminar una inscripción, en la consola de Google Cloud , ve a la página Eventarc > Pipelines.

    Ir a Pipelines

  2. Haz clic en el nombre de la canalización de la que quieras eliminar el registro.

    Se abrirá el panel Detalles del flujo de procesamiento.

  3. Haz clic en Editar.

  4. Haz clic en Continuar.

    Se abrirá el panel Inscripciones.

  5. En la inscripción que quieras eliminar, haz clic en el icono eliminar.

  6. Haz clic en Guardar.

gcloud

  1. Abre la terminal.

  2. Elimina un registro con el comando gcloud eventarc enrollments delete:

    gcloud eventarc enrollments delete ENROLLMENT_NAME \
          --location=LOCATION

    Haz los cambios siguientes:

API REST

Para eliminar una inscripción, utiliza el método projects.locations.enrollments.delete.

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

  • ENROLLMENT_NAME: el nombre visible de la inscripción que quieras eliminar (por ejemplo, my_enrollment).
  • PROJECT_ID: tu ID de proyecto Google Cloud.
  • LOCATION: la región en la que se implementa el registro. Por ejemplo, us-central1.

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/enrollments/ENROLLMENT_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Mostrar flujos de procesamiento

Puedes enumerar las canalizaciones 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

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

Ir a Pipelines

Se mostrarán todos los flujos de procesamiento. También puedes usar el filtro para acotar una búsqueda.

gcloud

  1. Abre la terminal.

  2. Consulta las inscripciones con el comando gcloud eventarc pipelines list:

    gcloud eventarc pipelines list \
        --location=LOCATION

    Sustituye LOCATION por una región de Eventarc Advanced compatible.

API REST

Para enumerar las canalizaciones, usa el método projects.locations.pipelines.list.

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 crean las canalizaciones. Por ejemplo, us-central1.

Para enviar tu solicitud, despliega una de estas opciones:

Si la salida del comando es correcta, en el cuerpo de la respuesta se incluirán instancias de Pipeline y la respuesta debería ser similar a la siguiente:

{
  "pipelines": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME",
      "createTime": "2025-01-10T20:32:11.606516066Z",
      "updateTime": "2025-03-26T18:02:34.886616683Z",
      "uid": "7d58dd18-323a-43f6-a456-4f8c20a70218",
      "destinations": [
        {
          "httpEndpoint": {
            "uri": "HTTP_URI"
          },
          "authenticationConfig": {
            "googleOidc": {
              "serviceAccount": "SERVICE_ACCOUNT_EMAIL"
            }
          }
        }
      ],
      "loggingConfig": {
        "logSeverity": "NONE"
      },
      "retryPolicy": {
        "maxAttempts": 5,
        "minRetryDelay": "1s",
        "maxRetryDelay": "60s"
      }
    },
    {...}
  ]
}

Eliminar una canalización

Puedes eliminar una canalización 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

Ten en cuenta que eliminar una canalización puede tardar más de 10 minutos.

Consola

  1. Para eliminar una canalización, en la consola, ve a la página Eventarc > Canalizaciones. Google Cloud

    Ir a Pipelines

  2. En la lista de canalizaciones, selecciona la casilla situada junto al nombre de la canalización que quieras eliminar.

  3. Haz clic en Eliminar.

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

  5. Haz clic en Eliminar.

gcloud

  1. Abre la terminal.

  2. Para eliminar una canalización, usa el comando gcloud eventarc pipelines delete:

    gcloud eventarc pipelines delete PIPELINE_NAME \
          --location=LOCATION

    Haz los cambios siguientes:

API REST

Para eliminar una canalización, utiliza el método projects.locations.pipelines.delete.

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

  • PIPELINE_NAME: el nombre visible del flujo de procesamiento que quieras eliminar (por ejemplo, my_pipeline).
  • PROJECT_ID: tu ID de proyecto Google Cloud.
  • LOCATION: la región en la que se implementa la canalización. Por ejemplo, us-central1.

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/pipelines/PIPELINE_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Siguientes pasos