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 permisoeventarc.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 permisoeventarc.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 permisoeventarc.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.
Para crear una inscripción, en la consola de Google Cloud , ve a la página Eventarc > Pipelines.
Haz clic en
Crear canalización.En el panel Detalles de la canalización, haz lo siguiente:
- Asigne un nombre a la canalización. Es el ID de tu flujo de trabajo.
- 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.
- 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
. - Opcional: En la sección Política de reintentos, puedes modificar la configuración predeterminada para reintentar eventos.
- 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).
Si seleccionas Clave de Cloud KMS, haz lo siguiente:
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.
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.
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.
Si se te pide, concede el rol
cloudkms.cryptoKeyEncrypterDecrypter
al agente de servicio de Eventarc.
Opcional: Para añadir etiquetas, haz clic en ¿Qué son las etiquetas?
Añadir etiqueta. Las etiquetas son pares clave-valor que te ayudan a organizar tus recursosGoogle Cloud . Para obtener más información, consultaHaz clic en Continuar.
En el panel Registros, haz lo siguiente:
- Haz clic en Añadir una inscripción.
- Escriba un nombre de registro.
- En la lista Autobús, selecciona un autobús al que quieras suscribirte.
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.
Haz clic en Listo.
Puedes añadir otro registro o hacer clic en Continuar.
Opcional: En el panel Mediación de eventos, haga lo siguiente o haga clic en Continuar:
- Seleccione la casilla Aplicar una transformación.
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.
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.
En el campo Expresión CEL, escribe una expresión de transformación con CEL.
Haz clic en Continuar.
En el panel Destino, haga lo siguiente:
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 HTTPPOST
. 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
.
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.
Si procede, aplica un enlace de mensaje. Para obtener más información, consulta Definir un enlace de mensaje.
Para habilitar la autenticación, marca la casilla Habilitar autenticación.
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 predeterminadohttps://www.googleapis.com/auth/cloud-platform
. En el caso de los servicios deGoogle Cloud , se recomienda usar el ámbitohttps://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.
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.
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
Abre la terminal.
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 completoDESTINATION_KEY
: uno o varios pares clave-valor para configurar un destino para la canalizaciónDebe 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 definirhttp_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 HTTPPOST
. 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 definirgoogle_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 definiroauth_token_authentication_scope
para especificar el ámbito de este token. De lo contrario, el valor predeterminado eshttps://www.googleapis.com/auth/cloud-platform
. En el caso de los servicios deGoogle Cloud , se recomienda usar el ámbitohttps://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.
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 Cloudlocation
: 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 AdvancedTambié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
oEMERGENCY
.--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
Abre la terminal.
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 completoMATCH_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 registroBUS_NAME
: el ID del bus avanzado de Eventarc o su nombre completoPROJECT_ID
: el ID de proyecto del bus Google CloudLOCATION
: una región compatible con Eventarc AdvancedTambié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 formatoprojects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto del proyecto de la canalización Google CloudLOCATION
: 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
yLABEL_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
yANNOTATION_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 valoresNONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
oEMERGENCY
. El valor predeterminado esNONE
. Para obtener más información, consultaLogSeverity
.destinations
: el destino al que se reenviarán los mensajes. También puedes definirmessageBindingTemplate
para especificar un enlace de mensaje. Para obtener más información, consulta elDestination
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 HTTPPOST
. 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 definiraudience
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 definirscope
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 ámbitohttps://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.
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 formatoprojects/PROJECT_ID/locations/LOCATION/pipelines/PIPELINE_NAME
.Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto del proyecto de la canalización Google CloudLOCATION
: 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 formatoprojects/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 busBUS_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
Para ver las inscripciones de una canalización específica, en la consola, Google Cloud vaya a la página Eventarc > Pipelines (Canalizaciones).
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
Abre la terminal.
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
Para eliminar una inscripción, en la consola de Google Cloud , ve a la página Eventarc > Pipelines.
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.
Haz clic en
Editar.Haz clic en Continuar.
Se abrirá el panel Inscripciones.
En la inscripción que quieras eliminar, haz clic en el icono
eliminar.Haz clic en Guardar.
gcloud
Abre la terminal.
Elimina un registro con el comando
gcloud eventarc enrollments delete
:gcloud eventarc enrollments delete ENROLLMENT_NAME \ --location=LOCATION
Haz los cambios siguientes:
ENROLLMENT_NAME
: el ID de la inscripción o un nombre completoLOCATION
: la región avanzada de Eventarc admitida de la suscripción
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.
Se mostrarán todos los flujos de procesamiento. También puedes usar el
filtro para acotar una búsqueda.gcloud
Abre la terminal.
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
Para eliminar una canalización, en la consola, ve a la página Eventarc > Canalizaciones. Google Cloud
En la lista de canalizaciones, selecciona la casilla situada junto al nombre de la canalización que quieras eliminar.
Haz clic en
Eliminar.Para confirmar la eliminación, introduce
Delete
.Haz clic en Eliminar.
gcloud
Abre la terminal.
Para eliminar una canalización, usa el comando
gcloud eventarc pipelines delete
:gcloud eventarc pipelines delete PIPELINE_NAME \ --location=LOCATION
Haz los cambios siguientes:
PIPELINE_NAME
: el ID de la canalización o un nombre completoLOCATION
: la región avanzada de Eventarc compatible de la canalización
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 }