Recibir eventos de SaaS desde una AWS Lambda función URLs en Amazon EventBridge - Amazon EventBridge

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Recibir eventos de SaaS desde una AWS Lambda función URLs en Amazon EventBridge

nota

Para que nuestros socios puedan acceder al Webhook entrante, estamos creando un Open Lambda en su AWS cuenta que está protegido a nivel de aplicación Lambda mediante la verificación de la firma de autenticación enviada por el socio externo. Revise esta configuración con el equipo de seguridad. Para obtener más información, consulte Modelo de seguridad y autenticación para la función URLs Lambda.

Tu bus de EventBridge eventos de Amazon puede usar una AWS Lambda función URL creada por una AWS CloudFormation plantilla para recibir eventos de proveedores de SaaS compatibles. Con la funciónURLs, los datos del evento se envían a una función Lambda. A continuación, la función convierte estos datos en un evento que puede ser ingerido EventBridge y enviado a un bus de eventos para su procesamiento. Una vez que el evento esté en un bus de eventos, puede usar reglas para filtrar los eventos, aplicar transformaciones de entrada configurada y, a continuación, dirigirlo al destino correcto.

nota

La creación de la función Lambda URLs aumentará sus costos mensuales. Para obtener más información, consulte Precios de AWS Lambda.

Para configurar una conexión EventBridge, primero debe seleccionar el proveedor de SaaS con el que desea configurar una conexión. A continuación, proporciona un secreto de firma que ha creado con ese proveedor y selecciona el bus de EventBridge eventos al que desea enviar los eventos. Por último, utilizas una AWS CloudFormation plantilla y creas los recursos necesarios para completar la conexión.

Los siguientes proveedores de SaaS están disponibles actualmente para su uso con la función EventBridge Lambda: URLs

  • GitHub

  • Twilio

Paso 1: Crear la pila AWS CloudFormation

Primero, usa la EventBridge consola de Amazon para crear una CloudFormation pila:

  1. Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/.

  2. En el panel de navegación, seleccione Inicios rápidos.

  3. En Webhooks entrantes con Lambda fURLs, selecciona Comenzar.

  4. En GitHub, seleccione Configurar.

  5. En Paso 1: Seleccionar un bus de eventos, seleccione un bus de eventos de la lista desplegable. Este bus de eventos recibe datos de la función Lambda URL que usted proporciona a. GitHub También puede crear un bus de eventos seleccionando Nuevo bus de eventos.

  6. En el paso 2: Configurar mediante CloudFormation, seleccione Nuevo GitHub webhook.

  7. Seleccione Reconozco que el Webhook entrante que cree será de acceso público y seleccione Confirmar.

  8. Escriba un nombre para la pila.

  9. En los parámetros, compruebe que aparece el bus de eventos correcto y, a continuación, especifique un token seguro para el GitHubWebhookSecret. Para obtener más información sobre la creación de un token seguro, consulte Configuración del token secreto en la documentación sobre GitHub.

  10. En Capacidades y transformaciones, seleccione cada una de las siguientes opciones:

    • Reconozco que eso AWS CloudFormation podría generar IAM recursos.

    • Reconozco que eso AWS CloudFormation podría crear IAM recursos con nombres personalizados.

    • Reconozco que AWS CloudFormation podría requerir la siguiente capacidad: CAPABILITY_AUTO_EXPAND

  11. Seleccione Crear pila.

Paso 2: Crear un webhook de GitHub

A continuación, cree el webhook en GitHub. Necesitará el token seguro y la función Lambda URL que creó en el paso 2 para completar este paso. Para obtener más información, consulte Creación de webhooks en la documentación de GitHub.

Configurar una conexión a un Twilio

Paso 1: Buscar el token de autenticación de Twilio

Para configurar una conexión entre Twilio y EventBridge, primero configura la conexión Twilio con el token de autenticación, o secreto, de tu Twilio cuenta. Para obtener más información, consulte Tokens de autenticación y cómo cambiarlos en la documentación sobre Twilio.

Paso 2: Crea la pila AWS CloudFormation

  1. Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/.

  2. En el panel de navegación, seleccione Inicios rápidos.

  3. En Webhooks entrantes con Lambda fURLs, selecciona Comenzar.

  4. En Twilio, seleccione Configurar.

  5. En Paso 1: Seleccionar un bus de eventos, seleccione un bus de eventos de la lista desplegable. Este bus de eventos recibe datos de la función Lambda URL que usted proporciona a. Twilio También puede crear un bus de eventos seleccionando Nuevo bus de eventos.

  6. En el paso 2: Configurar mediante CloudFormation, seleccione Nuevo Twilio webhook.

  7. Seleccione Reconozco que el Webhook entrante que cree será de acceso público y seleccione Confirmar.

  8. Escriba un nombre para la pila.

  9. En los parámetros, compruebe que aparece el bus de eventos correcto y, a continuación, introduzca el TwilioWebhookSecret que creó en el paso 1.

  10. En Capacidades y transformaciones, seleccione cada una de las siguientes opciones:

    • Reconozco que eso AWS CloudFormation podría generar IAM recursos.

    • Reconozco que eso AWS CloudFormation podría crear IAM recursos con nombres personalizados.

    • Reconozco que AWS CloudFormation podría requerir la siguiente capacidad: CAPABILITY _ AUTO _ EXPAND

  11. Seleccione Crear pila.

Paso 3: Crear un webhook de Twilio

Después de configurar la función LambdaURL, debes dársela a Twilio para que se puedan enviar los datos del evento. Para obtener más información, consulta Cómo configurar tu público URL con Twilio en la Twilio documentación.

Actualizar el token de autenticación o el secreto del webhook

Actualizar el secreto de GitHub

nota

GitHub no admite dos secretos a la vez. Es posible que se produzca un tiempo de inactividad de los recursos mientras el GitHub secreto y el secreto de la AWS CloudFormation pila no estén sincronizados. GitHubLos mensajes que se envíen mientras los secretos no estén sincronizados fallarán debido a que las firmas son incorrectas. Espera a que los CloudFormation secretos GitHub y los secretos estén sincronizados e inténtalo de nuevo.

  1. Crea un secreto de GitHub nuevo. Para obtener más información, consulte Secreto cifrados en la documentación sobre GitHub.

  2. Abre la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.

  3. En el panel de navegación, seleccione Pilas.

  4. Seleccione la pila para el webhook que incluye el secreto que desea actualizar.

  5. Seleccione Actualizar.

  6. Asegúrese de que la opción Usar plantilla actual esté seleccionada y seleccione Siguiente.

  7. En GitHubWebhookSecret, desactive Usar un valor existente, introduzca el nuevo GitHub secreto que creó en el paso 1 y seleccione Siguiente.

  8. Elija Next (Siguiente).

  9. Seleccione Actualizar pila.

Puede que el secreto tarde hasta una hora en propagarse. Para reducir este tiempo de inactividad, puede actualizar el contexto de ejecución de Lambda.

Actualizar el secreto de Twilio

nota

Twilio no admite dos secretos a la vez. Es posible que se produzca un tiempo de inactividad de los recursos mientras el Twilio secreto y el secreto de la AWS CloudFormation pila no estén sincronizados. Twiliolos mensajes que se envíen mientras los secretos no estén sincronizados fallarán debido a que las firmas son incorrectas. Espera a que los CloudFormation secretos Twilio y estén sincronizados e inténtalo de nuevo.

  1. Crea un secreto de Twilio nuevo. Para obtener más información, consulte Tokens de autenticación y cómo cambiarlos en la documentación sobre Twilio.

  2. Abre la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.

  3. En el panel de navegación, seleccione Pilas.

  4. Seleccione la pila para el webhook que incluye el secreto que desea actualizar.

  5. Seleccione Actualizar.

  6. Asegúrese de que la opción Usar plantilla actual esté seleccionada y seleccione Siguiente.

  7. En TwilioWebhookSecret, desactive Usar un valor existente, introduzca el nuevo Twilio secreto que creó en el paso 1 y seleccione Siguiente.

  8. Elija Next (Siguiente).

  9. Seleccione Actualizar pila.

Puede que el secreto tarde hasta una hora en propagarse. Para reducir este tiempo de inactividad, puede actualizar el contexto de ejecución de Lambda.

Actualizar una función de Lambda

La función Lambda que crea la CloudFormation pila crea el webhook básico. Si desea personalizar la función Lambda para un caso de uso específico, como el registro personalizado, utilice la consola para acceder a la función y, a continuación, utilice la CloudFormation consola Lambda para actualizar el código de la función Lambda.

Acceder a la función de Lambda
  1. Abra la AWS CloudFormation consola en /cloudformation. https://console.aws.amazon.com

  2. En el panel de navegación, seleccione Pilas.

  3. Seleccione la pila del webhook que incluye la función de Lambda que desea actualizar.

  4. Seleccione la pestaña Recursos.

  5. Para abrir la función de Lambda en la consola de Lambda, en ID físico, seleccione el ID de la función de Lambda.

Ahora que ha accedido a la función de Lambda, utilice la consola de Lambda para actualizar el código de la función.

Actualizar el código de la función de Lambda
  1. En Acciones, seleccione la función Exportar.

  2. Seleccione Descargar paquete de implementación y guarde el archivo en su ordenador.

  3. Descomprima el archivo .zip del paquete de implementación, actualice el archivo app.py y comprima el paquete de implementación actualizado, asegurándose de que se incluyen todos los archivos del archivo .zip original.

  4. En la página de la consola de Lambda, seleccione la pestaña Código.

  5. En Fuente de código, seleccione Subir desde.

  6. Seleccione .zip file (Archivo .zip) y, a continuación, seleccione Subir.

    1. En el selector de archivos, seleccione el archivo que actualizó, y seleccione Abrir y, luego, Guardar.

  7. En Acciones, seleccione Publicar nueva versión.

Tipos de eventos disponibles

Los buses de eventos admiten actualmente los siguientes tipos de CloudFormation eventos:

Cuotas, códigos de error y reintentos de entrega

Cuotas

El número de solicitudes entrantes al webhook está limitado por los AWS servicios subyacentes. En la siguiente tabla se muestran las cuotas correspondientes.

Servicio Cuota

AWS Lambda

Predeterminada: 10 ejecuciones simultáneas

Para obtener más información acerca de las cuotas, incluso cómo solicitar un aumento, consulte Cuotas de Lambda.

AWS Secrets Manager

Predeterminada: 5000 solicitudes por segundo

Para obtener más información acerca de las cuotas, incluso cómo solicitar un aumento, consulte Cuotas de AWS Secrets Manager.

nota

El número de solicitudes por segundo se minimiza con el cliente de almacenamiento en cachéAWS Secrets Manager Python.

Amazon EventBridge

Tamaño máximo de entrada de 256 KB para PutEvents las acciones.

EventBridge aplica cuotas tarifarias basadas en la región. Para obtener más información, consulte EventBridge cuotas.

Códigos de error

Cada AWS servicio devuelve códigos de error específicos cuando se producen errores. En la siguiente tabla se muestran los códigos de error correspondientes.

Servicio Código de error Descripción

AWS Lambda

429 «TooManyRequestsExption»

Se ha superado la cuota de ejecución simultánea.

AWS Secrets Manager

500 “Internal Server Error”

Se ha superado la cuota de solicitudes por segundo.

Amazon EventBridge

500 “Internal Server Error”

Se ha superado la cuota de tarifas de la región.

Reintento de entrega de eventos

Cuando se produzcan errores, puede reintentar la entrega de los eventos afectados. Cada proveedor de SaaS tiene diferentes procedimientos de reintento.

GitHub

Usa los GitHub webhooks API para comprobar el estado de entrega de cualquier llamada de webhook y vuelve a entregar el evento, si es necesario. Para obtener más información, consulte la siguiente documentación sobre GitHub:

Twilio

Los usuarios de Twilio pueden personalizar las opciones de reintento de eventos mediante anulaciones de conexión. Para obtener más información, consulte Webhooks (HTTPcallbacks): anulaciones de conexión en la documentación. Twilio