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.
nota
Para que nuestros socios puedan acceder al Webhook entrante, vamos a crear 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 URL de AWS Lambda función creada por una AWS CloudFormation plantilla para recibir eventos de proveedores de SaaS compatibles. Con la función URLs, 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 f URLs, selecciona Comenzar.
-
Bajo el título GitHub, selecciona 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 URL de la función Lambda que usted proporciona a GitHub. También puede crear un bus de eventos seleccionando Nuevo autobús de eventos.
-
En el paso 2: Configurar el uso CloudFormation, selecciona 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 aparezca el bus de eventos correcto y, a continuación, especifique un token seguro para GitHubWebhookSecret. Para obtener más información sobre la creación de un token seguro, consulta Cómo configurar tu token secreto
en el GitHub . -
En Capacidades y transformaciones, seleccione cada una de las siguientes opciones:
-
Reconozco que eso AWS CloudFormation podría crear recursos de IAM.
-
Reconozco que eso AWS CloudFormation podría crear recursos de IAM con nombres personalizados.
-
Reconozco que AWS CloudFormation podría requerir la siguiente capacidad:
CAPABILITY_AUTO_EXPAND
-
-
Seleccione Creación de pila.
Paso 2: Crear un GitHub webhook
A continuación, crea el webhook en GitHub. Necesitará el token seguro y la URL de la función Lambda que creó en el paso 2 para completar este paso. Para obtener más información, consulta Cómo crear webhooks
Configure una conexión a un Twilio
Paso 1: Encuentra tu Twilio token de autenticación
Para configurar una conexión entre Twilio y EventBridge, primero configure la conexión para Twilio con el token de autenticación, o secreto, para tu Twilio account. Para obtener más información, consulta los 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 f URLs, selecciona Comenzar.
-
Bajo el título Twilio, selecciona 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 URL de la función Lambda que usted proporciona a Twilio. También puede crear un bus de eventos seleccionando Nuevo autobús de eventos.
-
En el paso 2: Configurar el uso CloudFormation, selecciona 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 TwilioWebhookSecretque creó en el paso 1.
-
En Capacidades y transformaciones, seleccione cada una de las siguientes opciones:
-
Reconozco que eso AWS CloudFormation podría crear recursos de IAM.
-
Reconozco que eso AWS CloudFormation podría crear recursos de IAM con nombres personalizados.
-
Reconozco que AWS CloudFormation podría requerir la siguiente capacidad: CAPABILITY_AUTO_EXPAND
-
-
Seleccione Creación de pila.
Paso 3: Crea un Twilio webhook
Después de configurar la URL de función de Lambda, debe entregársela a Twilio para enviar los datos del evento. Para obtener más información, consulte Configurar su URL pública con Twilio
Actualizar el token de autenticación o el secreto del webhook
Actualización GitHub secreta
nota
GitHub no admite tener dos secretos al mismo tiempo. Es posible que experimente un tiempo de inactividad de los recursos mientras el GitHub el secreto y el secreto de la AWS CloudFormation pila no están sincronizados. GitHub Los mensajes que se envíen mientras los secretos no estén sincronizados fallarán debido a que las firmas son incorrectas. Espere hasta que GitHub y CloudFormation los secretos estén sincronizados, inténtalo de nuevo.
-
Crear una nueva GitHub secreto. Para obtener más información, consulte Secretos cifrados
en el 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 e 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.
Actualización Twilio secreta
nota
Twilio no admite tener dos secretos al mismo tiempo. Es posible que experimente un tiempo de inactividad de los recursos mientras el Twilio el secreto y el secreto de la AWS CloudFormation pila no están sincronizados. Twilio los mensajes enviados mientras los secretos no estén sincronizados fallarán debido a que las firmas son incorrectas. Espere hasta que el Twilio y CloudFormation los secretos estén sincronizados, inténtalo de nuevo.
-
Crear una nueva Twilio secreto. Para obtener más información, consulta los tokens de autenticación y cómo cambiarlos
en el 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 e 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 de bus de eventos. |
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
Use la GitHub API de webhooks para comprobar el estado de entrega de cualquier llamada de webhook y volver a entregar el evento, si es necesario. Para obtener más información, consulta lo siguiente GitHub documentación:
-
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
Twilio los usuarios pueden personalizar las opciones de reintento de eventos mediante anulaciones de conexión. Para obtener más información, consulte Webhooks (llamadas HTTP): anulaciones