Activador de Cloud Pub/Sub

El activador de Cloud Pub/Sub te permite ejecutar tu integración en función de los eventos en tu middleware de Pub/Sub.

Con este activador, puedes ejecutar una integración cada vez que un publicador escribe un mensaje en el tema que elegiste. El tema puede existir en el mismo proyecto Google Cloud que la integración o en un proyecto Google Cloud diferente. Cuando se ejecuta este activador, también se escribe el mensaje publicado en la variable de salida CloudPubSubMessage. Según tus requisitos, puedes usar esta variable en los activadores o las tareas posteriores.

Para aprender a crear una integración de muestra con Application Integration y el activador de Cloud Pub/Sub, consulta Cómo escuchar un tema de Cloud Pub/Sub y enviar un correo electrónico.

Con este activador, puedes ejecutar una integración cada vez que un publicador escribe un mensaje en el tema que elegiste. Cuando se ejecuta este activador, también se escribe el mensaje publicado en la variable de salida CloudPubSubMessage. Según tus requisitos, puedes usar esta variable en los activadores o las tareas posteriores.

Antes de comenzar

Asegúrate de realizar las siguientes tareas en tu proyecto Google Cloud antes de configurar el activador de Cloud Pub/Sub.

  • Asigna el rol de administrador de IAM de proyecto (roles/resourcemanager.projectIamAdmin) al usuario que crea este activador.
  • Habilita la API de Pub/Sub para el proyecto Google Cloud que tiene tu integración.
  • Si la API de Pub/Sub está protegida por un perímetro de servicio, asegúrate de definir los siguientes roles de IAM para administrar estos perímetros de servicio:

    • Administrador de Access Context Manager (roles/accesscontextmanager.policyAdmin)
    • Editor de Access Context Manager (roles/accesscontextmanager.policyEditor)
    • Lector de Access Context Manager (roles/accesscontextmanager.policyReader)

  • Confirma que tienes un tema de Pub/Sub. Para crear un tema nuevo de Pub/Sub:
    1. Ve a la página de temas de Pub/Sub en la consola de Cloud.

      Ir a la página de temas de Pub/Sub

    2. Haga clic en Crear un tema.
    3. En el campo ID de tema, proporciona un nombre de tema único.
    4. Haz clic en Guardar.
Para obtener más información sobre cómo administrar el acceso con roles de IAM, consulta Control de acceso.

Para obtener información sobre cómo otorgar roles a las principales, consulta Otorga, cambia y revoca acceso.

Agrega un activador de Cloud Pub/Sub

Para agregar un activador de Cloud Pub/Sub a una integración nueva o existente, sigue los pasos que se indican a continuación:
  1. En la consola de Google Cloud , ve a la página Application Integration.

    Ir a Application Integration

  2. En el menú de navegación, haz clic en Integraciones.

    Aparecerá la página Lista de integraciones, en la que se enumeran todas las integraciones disponibles en el proyecto de Google Cloud.

  3. Selecciona una integración existente o haz clic en Crear integración para crear una nueva.

    Si creas una integración nueva, haz lo siguiente:

    1. Ingresa un nombre y una descripción en el panel Crear integración.
    2. Selecciona una región para la integración.
    3. Selecciona una cuenta de servicio para la integración. Puedes cambiar o actualizar los detalles de la cuenta de servicio de una integración en cualquier momento desde el panel Resumen de la integración en la barra de herramientas de integración.
    4. Haz clic en Crear.

    La integración recién creada se abre en el editor de integración.

  4. En la barra de navegación del editor de integración, haz clic en Activadores para ver la lista de activadores disponibles.
  5. Haz clic y coloca el elemento activador de Cloud Pub/Sub en el diseñador.

Configura un activador de Cloud Pub/Sub

Haz clic en el elemento activador de Cloud Pub/Sub en el editor de integración para ver el panel de configuración del activador y, luego, realiza las siguientes tareas:

  1. Especifica el tema que el activador debe escuchar en el campo Tema de Pub/Sub en el siguiente formato:
    projects/PROJECT_ID/topics/TOPIC_ID

    Para ver todos los temas disponibles en tu proyecto de Google Cloud , consulta la columna Nombre del tema en Temas. También puedes seleccionar un tema de un proyecto Google Cloud diferente.

    Reemplaza lo siguiente:
    • PROJECT_ID: El proyecto Google Cloud en el que se crea tu tema.
    • TOPIC_ID: Es el ID de tu tema de Pub/Sub. El tema puede estar en el mismo proyecto Google Cloud que el de tu integración o en un proyecto Google Cloud diferente.
  2. Selecciona la cuenta de servicio que quieres usar para invocar la integración. También puedes elegir una variable de configuración que hayas creado en la integración. El valor de la variable de configuración debe ser una dirección de correo electrónico de cuenta de servicio con el siguiente formato: SERVICE_ACCOUNT_NAME@project-id.iam.gserviceaccount.com. Por ejemplo, application-integration-invoke@project123.iam.gserviceaccount.com.

    Para obtener información sobre cómo crear una variable de configuración, consulta Crea una variable y, para obtener información sobre cómo crear una cuenta de servicio, consulta Crea una cuenta de servicio.

    Si eliges una variable de configuración, debes otorgar los roles necesarios a la cuenta de servicio a la que hace referencia la variable de configuración. Para obtener más información sobre cómo otorgar roles, consulta Roles de IAM obligatorios.

    Si no hay cuentas de servicio, haz clic en Crear nueva en la lista Cuenta de servicio para crear una.

De forma predeterminada, la opción de período de vencimiento para las suscripciones se establece en never expire. Si deseas establecer la fecha de vencimiento en otro valor, en la consola de Google Cloud , ve a la página de suscripción de Pub/Sub y edita la suscripción.

Roles de IAM necesarios para las cuentas de servicio

Cuando haces clic en Otorgar al seleccionar una cuenta de servicio, se otorgan automáticamente los siguientes roles a las distintas cuentas de servicio.

Cuenta de servicio Rol de IAM otorgado
Cuenta de servicio predeterminada de Application Integration: service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com
  • Editor de Pub/Sub (roles/pubsub.editor)
  • Usuario de la cuenta de servicio (roles/iam.serviceAccountUser)

Si el proyecto Google Cloud del tema de Pub/Sub es diferente del proyecto Google Cloudde la integración, la cuenta de servicio predeterminada necesita el rol de editor de Pub/Sub en el proyecto Google Cloud del tema.

Cuenta de servicio que seleccionas para este activador Invocador de Application Integration (roles/integrations.integrationInvoker)

Resultado del activador

Para cada evento, el activador de Cloud Pub/Sub genera una variable de salida CloudPubSubMessage que puedes usar en tus tareas descendentes. La variable está en formato JSON y tiene la estructura PubsubMessage.

Crea una suscripción con un filtro para tu integración

Si deseas establecer un filtro para que la suscripción a Pub/Sub procese eventos específicos en tu integración, sigue estos pasos:

  1. Publica la integración con el activador de Cloud Pub/Sub configurado. En este paso, se crea la suscripción en el proyecto de integración.
  2. En la consola de Google Cloud , ve a la página Suscripciones.

    Ir a Suscripciones

  3. Abre la suscripción y copia todos los detalles, incluido el nombre de la suscripción.
  4. Borra la suscripción existente.
  5. Crea una suscripción nueva con todos los detalles de la suscripción borrada (incluido el nombre) que copiaste en el paso 3 y agrega un filtro en la suscripción nueva.

    La suscripción recién creada activa la integración con mensajes filtrados.

Exclusiones del ANS

El activador de Cloud Pub/Sub depende del producto Pub/Sub. Como esta dependencia es externa a Application Integration, los términos y condiciones del Acuerdo de Nivel de Servicio (ANS) de Application Integration solo se aplican cuando el activador de Cloud Pub/Sub inicia correctamente la ejecución de una integración de active.

Usa activadores de Pub/Sub con los Controles del servicio de VPC

Cuando configuras un activador de Pub/Sub en Application Integration y tratas de publicar la integración, falla la creación de la suscripción de Pub/Sub requerida si la API de Pub/Sub está protegida por un perímetro de servicio en los Controles del servicio de VPC.

Los perímetros de servicio aplican límites de seguridad alrededor de tus recursos de Google Cloud , y estas políticas pueden impedir que Application Integration cree la suscripción a Pub/Sub necesaria durante la publicación de la integración.

Para configurar y publicar correctamente un activador de Pub/Sub en estas situaciones, sigue estos pasos:

  1. Quita temporalmente la API de Pub/Sub del perímetro de servicio:
    1. En la consola de Google Cloud , ve a la página Controles del servicio de VPC.

      Ir a los Controles del servicio de VPC

    2. Selecciona el proyecto Google Cloud que contiene el tema de Pub/Sub que se usará en la integración.
    3. (Opcional) Si no se configuró ninguna política de acceso para el proyecto seleccionado, aparecerá el mensaje No se encontraron perímetros de servicio de VPC en el permiso actual. En este caso, haz clic en Cambiar al permiso de la organización para navegar al nivel de la organización.
    4. En la página Controles del servicio de VPC, en la tabla, haz clic en el nombre del perímetro de servicio que deseas modificar.
    5. En la página Detalles del perímetro de servicio, haz clic en Editar.
    6. En el panel Servicios restringidos, filtra y selecciona el servicio pubsub.googleapis.com.
    7. Haz clic en Quitar la selección.
    8. Haz clic en Guardar. En el diálogo de confirmación, haz clic en Confirmar para quitar la API de Pub/Sub de tu perímetro de servicio de Controles del servicio de VPC.
  2. Agrega y configura el activador de Pub/Sub en tu integración.
  3. Publica la integración.
  4. Vuelve a agregar la API de Pub/Sub al perímetro de servicio:
    1. Ir a la página Controles del servicio de VPC

      Ir a los Controles del servicio de VPC

    2. En la página Controles del servicio de VPC, en la tabla, haz clic en el mismo perímetro de servicio que modificaste antes.
    3. En la página Detalles del perímetro de servicio, haz clic en Editar.
    4. En el panel Servicios restringidos, haz clic en Agregar servicios.
    5. Filtra y selecciona el servicio pubsub.googleapis.com.
    6. Haz clic en Agregar los servicios seleccionados.
    7. Haz clic en Guardar. En el diálogo de confirmación, haz clic en Confirmar para volver a agregar la API de Pub/Sub a tu perímetro de servicio de Controles del servicio de VPC.

Precios

El activador de Cloud Pub/Sub y el activador de Salesforce no requieren que crees un conector. Sin embargo, si usas la tarea Connectors para conectarte a Pub/Sub o Salesforce, se te facturará el uso del conector. Para obtener información sobre los precios, consulta Precios de Application Integration.

Consideraciones

  • El tamaño máximo de un mensaje de Pub/Sub es de 10 MB. Para comprender todas las limitaciones de Pub/Sub, consulta las cuotas y límites de Pub/Sub.
  • Es posible que Pub/Sub escriba el mismo mensaje más de una vez en un tema. Para comprender este comportamiento de Pub/Sub, consulta Al menos una entrega. Por lo tanto, debes diseñar tu integración para que sea idempotente, de modo que no permita que un mensaje se escriba más de una vez en un tema.

    El campo message_id en el encabezado del mensaje identifica de forma única un mensaje de Pub/Sub.

  • El activador de Cloud Pub/Sub no admite el orden de mensajes. El orden de mensajes de Pub/Sub está inhabilitado para la suscripción creada por el activador de Cloud Pub/Sub y no se puede habilitar.
  • Si anulas la publicación de una integración, no se borra la suscripción a Pub/Sub para evitar la pérdida de mensajes. Sin embargo, si borras la versión publicada o todas las versiones de integración de una integración, también se borrará la suscripción a Pub/Sub.

Cuotas y límites

Para obtener información sobre las cuotas y los límites, consulta Cuotas y límites.

¿Qué sigue?