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
Temas
Paso 1: Crear la pila AWS CloudFormation
Primero, usa la EventBridge consola de Amazon para crear una CloudFormation pila:
Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/
. -
En el panel de navegación, seleccione Inicios rápidos.
-
En Webhooks entrantes con Lambda fURLs, selecciona Comenzar.
-
En GitHub, seleccione Configurar.
-
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.
-
En el paso 2: Configurar mediante CloudFormation, seleccione Nuevo GitHub webhook.
-
Seleccione Reconozco que el Webhook entrante que cree será de acceso público y seleccione Confirmar.
-
Escriba un nombre para la pila.
-
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. -
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
-
-
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
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
Paso 2: Crea la pila AWS CloudFormation
Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/
. -
En el panel de navegación, seleccione Inicios rápidos.
-
En Webhooks entrantes con Lambda fURLs, selecciona Comenzar.
-
En Twilio, seleccione Configurar.
-
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.
-
En el paso 2: Configurar mediante CloudFormation, seleccione Nuevo Twilio webhook.
-
Seleccione Reconozco que el Webhook entrante que cree será de acceso público y seleccione Confirmar.
-
Escriba un nombre para la pila.
-
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.
-
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
-
-
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
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.
-
Crea un secreto de GitHub nuevo. Para obtener más información, consulte Secreto cifrados
en la documentación sobre GitHub. Abre la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation
. -
En el panel de navegación, seleccione Pilas.
-
Seleccione la pila para el webhook que incluye el secreto que desea actualizar.
-
Seleccione Actualizar.
-
Asegúrese de que la opción Usar plantilla actual esté seleccionada y seleccione Siguiente.
-
En GitHubWebhookSecret, desactive Usar un valor existente, introduzca el nuevo GitHub secreto que creó en el paso 1 y seleccione Siguiente.
-
Elija Next (Siguiente).
-
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.
-
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. Abre la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation
. -
En el panel de navegación, seleccione Pilas.
-
Seleccione la pila para el webhook que incluye el secreto que desea actualizar.
-
Seleccione Actualizar.
-
Asegúrese de que la opción Usar plantilla actual esté seleccionada y seleccione Siguiente.
-
En TwilioWebhookSecret, desactive Usar un valor existente, introduzca el nuevo Twilio secreto que creó en el paso 1 y seleccione Siguiente.
-
Elija Next (Siguiente).
-
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
-
En el panel de navegación, seleccione Pilas.
-
Seleccione la pila del webhook que incluye la función de Lambda que desea actualizar.
-
Seleccione la pestaña Recursos.
-
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
-
En Acciones, seleccione la función Exportar.
-
Seleccione Descargar paquete de implementación y guarde el archivo en su ordenador.
-
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. -
En la página de la consola de Lambda, seleccione la pestaña Código.
-
En Fuente de código, seleccione Subir desde.
-
Seleccione .zip file (Archivo .zip) y, a continuación, seleccione Subir.
En el selector de archivos, seleccione el archivo que actualizó, y seleccione Abrir y, luego, Guardar.
-
En Acciones, seleccione Publicar nueva versión.
Tipos de eventos disponibles
Los buses de eventos admiten actualmente los siguientes tipos de CloudFormation eventos:
-
GitHub— Se admiten todos los tipos de eventos
. -
Twilio: se admiten los webhooks posteriores al evento
.
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. notaEl 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:
-
Organización: reintente una entrega para un webhook de organización
-
Repositorio: reintente una entrega para un webhook de repositorio
-
Aplicación: reintente una entrega para un webhook de aplicación
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