Réception d'événements SaaS depuis AWS Lambda une fonction URLs sur Amazon EventBridge - Amazon EventBridge

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Réception d'événements SaaS depuis AWS Lambda une fonction URLs sur Amazon EventBridge

Note

Pour que le webhook entrant soit accessible à nos partenaires, nous créons un Open Lambda dans votre AWS compte qui est sécurisé au niveau de l'application Lambda en vérifiant la signature d'authentification envoyée par le partenaire tiers. Vérifiez cette configuration avec votre équipe de sécurité. Pour plus d'informations, voir Modèle de sécurité et d'authentification pour la fonction URLs Lambda.

Votre bus d' EventBridge événements Amazon peut utiliser une AWS Lambda fonction URL créée par un AWS CloudFormation modèle pour recevoir des événements provenant de fournisseurs SaaS pris en charge. Avec functionURLs, les données d'événement sont envoyées à une fonction Lambda. La fonction convertit ensuite ces données en un événement qui peut être ingéré EventBridge et envoyé à un bus d'événements pour traitement. Une fois que l’événement est sur un bus d’événements, vous pouvez utiliser des règles pour filtrer les événements, appliquer les éventuelles transformations d’entrée configurées, puis les router vers la cible appropriée.

Note

La création de la fonction Lambda URLs augmentera vos coûts mensuels. Pour en savoir plus, consultez Pricing AWS Lambda (Tarification).

Pour configurer une connexion EventBridge, vous devez d'abord sélectionner le fournisseur SaaS avec lequel vous souhaitez établir une connexion. Ensuite, vous fournissez un secret de signature que vous avez créé avec ce fournisseur et vous sélectionnez le bus d' EventBridge événements auquel envoyer les événements. Enfin, vous utilisez un AWS CloudFormation modèle et créez les ressources nécessaires pour terminer la connexion.

Les fournisseurs SaaS suivants sont actuellement disponibles pour EventBridge utiliser la fonction Lambda : URLs

  • GitHub

  • Twilio

Étape 1 : Création de la AWS CloudFormation pile

Tout d'abord, utilisez la EventBridge console Amazon pour créer une CloudFormation pile :

  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. Dans le volet de navigation, choisissez Quick Starts.

  3. Sous Webhooks entrants utilisant Lambda fURLs, choisissez Get started.

  4. Sous GitHub, choisissez Configurer.

  5. Sous Étape 1 : Sélectionner un bus d’événements, sélectionnez un bus d’événements dans la liste déroulante. Ce bus d'événements reçoit les données de la fonction Lambda URL que vous fournissez à. GitHub Vous pouvez également créer un bus d’événements en sélectionnant Nouveau bus d’événements.

  6. Dans Étape 2 : Configuration à l'aide de CloudFormation, choisissez Nouveau GitHub webhook.

  7. Sélectionnez Je reconnais que le webhook entrant que je crée sera accessible au public et choisissez Confirmer.

  8. Entrez un nom pour la pile.

  9. Sous les paramètres, vérifiez que le bus d’événements correct est répertorié, puis spécifiez un jeton sécurisé pour GitHubWebhookSecret. Pour plus d’informations sur la création d’un jeton sécurisé, consultez Définition de votre jeton secret (langue française non garantie) dans la documentation de GitHub.

  10. Sous Fonctionnalités et transformations, sélectionnez chacune des options suivantes :

    • Je reconnais que cela AWS CloudFormation peut créer IAM des ressources.

    • Je reconnais que cela AWS CloudFormation peut créer IAM des ressources avec des noms personnalisés.

    • Je reconnais que AWS CloudFormation cela peut nécessiter les capacités suivantes : CAPABILITY_AUTO_EXPAND

  11. Sélectionnez Créer la pile.

Étape 2 : Créer un webhook GitHub

Créez ensuite le webhook sur GitHub. Vous aurez besoin du jeton sécurisé et de la fonction Lambda URL que vous avez créés à l'étape 2 pour terminer cette étape. Pour plus d’informations, consultez Création de webhooks (langue française non garantie) dans la documentation de GitHub.

Configuration d’une connexion à Twilio

Étape 1 : Rechercher votre jeton d’authentification Twilio

Pour établir une connexion entre Twilio et EventBridge, configurez d'abord la connexion Twilio avec le jeton d'authentification, ou secret, de votre Twilio compte. Pour plus d’informations, consultez Jetons d’authentification et comment les modifier (langue française non garantie) dans la documentation de Twilio.

Étape 2 : Création de la AWS CloudFormation pile

  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. Dans le volet de navigation, choisissez Quick Starts.

  3. Sous Webhooks entrants utilisant Lambda fURLs, choisissez Get started.

  4. Sous Twilio, choisissez Configurer.

  5. Sous Étape 1 : Sélectionner un bus d’événements, sélectionnez un bus d’événements dans la liste déroulante. Ce bus d'événements reçoit les données de la fonction Lambda URL que vous fournissez à. Twilio Vous pouvez également créer un bus d’événements en sélectionnant Nouveau bus d’événements.

  6. Dans Étape 2 : Configuration à l'aide de CloudFormation, choisissez Nouveau Twilio webhook.

  7. Sélectionnez Je reconnais que le webhook entrant que je crée sera accessible au public et choisissez Confirmer.

  8. Entrez un nom pour la pile.

  9. Sous les paramètres, vérifiez que le bus d’événements correct est répertorié, puis entrez le secret TwilioWebhookSecret que vous avez créé à l’étape 1.

  10. Sous Fonctionnalités et transformations, sélectionnez chacune des options suivantes :

    • Je reconnais que cela AWS CloudFormation peut créer IAM des ressources.

    • Je reconnais que cela AWS CloudFormation peut créer IAM des ressources avec des noms personnalisés.

    • Je reconnais que AWS CloudFormation cela peut nécessiter la capacité suivante : CAPABILITY _ AUTO _ EXPAND

  11. Sélectionnez Créer la pile.

Étape 3 : Créer un webhook Twilio

Après avoir configuré la fonction LambdaURL, vous devez la transmettre à Twilio afin que les données d'événements puissent être envoyées. Pour plus d'informations, consultez Configurer votre public URL avec Twilio dans la Twilio documentation.

Mise à jour du secret ou du jeton d’authentification d’un webhook

Mise à jour d’un secret GitHub

Note

GitHub ne permet pas d’avoir deux secrets en même temps. Il est possible que les ressources soient indisponibles lorsque le GitHub secret et le secret de la AWS CloudFormation pile ne sont pas synchronisés. GitHubles messages envoyés alors que les secrets ne sont pas synchronisés échoueront en raison de signatures incorrectes. Attendez que les CloudFormation secrets GitHub et soient synchronisés, puis réessayez.

  1. Créez un secret GitHub. Pour plus d’informations, consultez Secrets chiffrés (langue française non garantie) dans la documentation de GitHub.

  2. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  3. Choisissez Piles dans le volet de navigation.

  4. Choisissez la pile du webhook qui inclut le secret que vous souhaitez mettre à jour.

  5. Choisissez Mettre à jour.

  6. Assurez-vous que l’option Utiliser modèle en cours est sélectionnée, puis choisissez Suivant.

  7. Sous GitHubWebhookSecret, décochez Utiliser la valeur existante, entrez le nouveau GitHub secret que vous avez créé à l'étape 1, puis choisissez Suivant.

  8. Choisissez Suivant.

  9. Choisissez Mettre à jour la pile.

La propagation du secret peut prendre jusqu’à une heure. Pour réduire ce temps d’arrêt, vous pouvez actualiser le contexte d’exécution Lambda.

Mise à jour d’un secret Twilio

Note

Twilio ne permet pas d’avoir deux secrets en même temps. Il est possible que les ressources soient indisponibles lorsque le Twilio secret et le secret de la AWS CloudFormation pile ne sont pas synchronisés. Twilioles messages envoyés alors que les secrets ne sont pas synchronisés échoueront en raison de signatures incorrectes. Attendez que les CloudFormation secrets Twilio et soient synchronisés, puis réessayez.

  1. Créez un secret Twilio. Pour plus d’informations, consultez Jetons d’authentification et comment les modifier (langue française non garantie) dans la documentation de Twilio.

  2. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  3. Choisissez Piles dans le volet de navigation.

  4. Choisissez la pile du webhook qui inclut le secret que vous souhaitez mettre à jour.

  5. Choisissez Mettre à jour.

  6. Assurez-vous que l’option Utiliser modèle en cours est sélectionnée, puis choisissez Suivant.

  7. Sous TwilioWebhookSecret, décochez Utiliser la valeur existante, entrez le nouveau Twilio secret que vous avez créé à l'étape 1, puis choisissez Suivant.

  8. Choisissez Suivant.

  9. Choisissez Mettre à jour la pile.

La propagation du secret peut prendre jusqu’à une heure. Pour réduire ce temps d’arrêt, vous pouvez actualiser le contexte d’exécution Lambda.

Mise à jour d’une fonction Lambda

La fonction Lambda créée par la CloudFormation pile crée le webhook de base. Si vous souhaitez personnaliser la fonction Lambda pour un cas d'utilisation spécifique, tel que la journalisation personnalisée, utilisez la console pour accéder à la fonction, puis utilisez la CloudFormation console Lambda pour mettre à jour le code de la fonction Lambda.

Accès à la fonction Lambda
  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Choisissez Piles dans le volet de navigation.

  3. Choisissez la pile pour le webhook qui inclut la fonction Lambda que vous souhaitez mettre à jour.

  4. Cliquez sur l’onglet Ressources.

  5. Pour ouvrir la fonction Lambda dans la console Lambda, sous ID physique, choisissez l’ID de la fonction Lambda.

Maintenant que vous avez accédé à la fonction Lambda, utilisez la console Lambda pour mettre à jour le code de la fonction.

Mise à jour du code de la fonction Lambda
  1. Sous Actions, choisissez Exporter la fonction.

  2. Choisissez Télécharger un package de déploiement, puis enregistrez le fichier sur votre ordinateur.

  3. Décompressez le fichier .zip du package de déploiement, mettez à jour le fichier app.py, puis compressez le package de déploiement à jour, en vous assurant que tous les fichiers du fichier .zip d’origine sont inclus.

  4. Dans la console Lambda, cliquez sur l’onglet Code.

  5. Sous Code source (Source du code), sélectionnez Upload from (Charger depuis).

  6. Choisissez .zip file (fichier .zip), puis Upload (Charger).

    1. Dans le sélecteur de fichiers, sélectionnez le fichier que vous avez mis à jour, choisissez Ouvrir, puis Enregistrer.

  7. Sous Actions, choisissez Publier une nouvelle version.

Types d’événements disponibles

Les types d'événements suivants sont actuellement pris en charge par les bus CloudFormation d'événements :

Quotas, codes d’erreur et nouvelle tentative de livraison

Quotas

Le nombre de demandes entrantes adressées au webhook est plafonné par les services sous-jacents AWS . Le tableau suivant inclut les quotas correspondants.

Service Quota

AWS Lambda

Par défaut : 10 exécutions simultanées

Pour plus d’informations sur les quotas, notamment sur la demande d’augmentation des quotas, consultez Quotas Lambda.

AWS Secrets Manager

Par défaut : 5 000 demandes par seconde

Pour plus d’informations sur les quotas, notamment sur la demande d’augmentation des quotas, consultez Quotas AWS Secrets Manager.

Note

Le nombre de demandes par seconde est réduit au maximum à l’aide du client de mise en cache AWS Secrets Manager Python.

Amazon EventBridge

Taille d'entrée maximale de 256 Ko pour les PutEvents actions.

EventBridge applique les quotas tarifaires basés sur les régions. Pour de plus amples informations, veuillez consulter EventBridge quotas.

Codes d’erreur

Chaque AWS service renvoie des codes d'erreur spécifiques en cas d'erreur. Le tableau suivant inclut les codes d’erreur correspondants.

Service Code d’erreur Description

AWS Lambda

429 « TooManyRequestsExption »

Le quota d’exécutions simultanées est dépassé.

AWS Secrets Manager

500 « Erreur de serveur interne »

Le quota de demandes par seconde est dépassé.

Amazon EventBridge

500 « Erreur de serveur interne »

Le quota de taux est dépassé pour la région.

Nouvelle livraison d’événements

En cas d’erreur, vous pouvez réessayer de livrer les événements concernés. Chaque fournisseur SaaS dispose de procédures de nouvelle tentative différentes.

GitHub

Utilisez les GitHub webhooks API pour vérifier l'état de livraison de tout appel webhook et retransmettez l'événement, si nécessaire. Pour plus d’informations, consultez la documentation de GitHub suivante :

Twilio

Les utilisateurs de Twilio peuvent personnaliser les options de nouvelle tentative de livraison d’événement en utilisant des remplacements de connexion. Pour plus d'informations, consultez Webhooks (HTTPcallbacks) : Connection Overrides dans la documentation. Twilio