Comment puis-je abonner un point de terminaison HTTP ou HTTPS privé à ma rubrique Amazon SNS ?

Dernière mise à jour : le 3 juin 2021

Je souhaite abonner un point de terminaison HTTP ou HTTPS privé à ma rubrique Amazon Simple Notification Service (Amazon SNS). Comment procéder ?

Brève description

Pour abonner un point de terminaison HTTP ou HTTPS privé à une rubrique Amazon SNS, procédez comme suit :

Solution

Créer un groupe de sécurité Amazon VPC (LambdaSG) dans le même Amazon VPC que le point de terminaison privé

1.    Ouvrez la console Amazon VPC.

2.    Dans le volet de navigation de gauche, sous Sécurité, choisissez Groupes de sécurité. Puis, choisissez Créer un groupe de sécurité.

3.    Pour Nom du groupe de sécurité, saisissez LambdaSG.

4.    Pour VPC, choisissez le VPC Amazon dans lequel se trouve le point de terminaison privé.

5.    Choisissez Créer un groupe de sécurité.

Créez une fonction Lambda dans le même VPC et sous-réseau Amazon que le point de terminaison privé, et ajoutez-la au groupe de sécurité LambdaSG

1.    Ouvrez la console Lambda.

2.    Sélectionnez Créer une fonction.

3.    Choisissez Author from scratch (Créer à partir de zéro).

4.    Comme Nom de fonction, saisissez un nom qui décrit le but de votre fonction. Par exemple, Abonnement-point-de-terminaison-privé-rubrique-Amazon-SNS.

5.    Dans le champ Runtime, choisissez Python 3.8.

6.    Choisissez Paramètres avancés.

7.    Pour VPC - facultatif, choisissez le VPC Amazon dans lequel se trouve le point de terminaison privé. Les listes déroulantes des sous-réseaux et des groupes de sécurité s'affichent.

8.    Pour les sous-réseaux, choisissez le sous-réseau dans lequel se trouve le point de terminaison privé.

9.    Pour Groupes de sécurité, choisissez LambdaSG.

10.    Sélectionnez Créer une fonction.

Modifier les règles du groupe de sécurité du point de terminaison privé pour autoriser la connexion entrante à partir du groupe de sécurité de la fonction Lambda

1.    Ouvrez la console Amazon VPC.

2.    Dans le volet de navigation de gauche, sous Sécurité, choisissez Groupes de sécurité.

3.    Choisissez le nom du groupe de sécurité du point de terminaison privé.

4.    Choisissez Modifier les règles entrantes.

5.    Pour Type, choisissez HTTP ou HTTPS, en fonction de votre cas d'utilisation. Les champs Protocole et Plage de ports sont renseignés automatiquement.

6.    Pour Source, sélectionnez Personnalisée. Ensuite, choisissez le groupe de sécurité LambdaSG .

7.    Choisissez Enregistrer les règles.

Configurez la fonction Lambda pour qu’elle transmette les notifications Amazon SNS entrantes au point de terminaison privé

1.    Créez un package de déploiement Lambda qui inclut la bibliothèque de requêtes Pythonde votre fonction Lambda. Suivez les instructions de la section Créer le package de déploiement dans Tutoriel : Création d'une fonction Lambda dans Python 3.8. Pour l'étape 3, remplacez le code fourni dans le didacticiel par l'exemple d'extrait de code suivant.

Extrait de code Python qui utilise la bibliothèque de requêtes pour publier les notifications entrantes d'Amazon SNS sur le point de terminaison privé

Important : Remplacez la valeur url par l'URL de votre point de terminaison privé.

import json
import requests
 
def lambda_handler(event, context):
    url = "<PRIVATE_HTTP/S_ENDPOINT_URL>"
 
    sns_message_payload = event["Records"][0]["Sns"]
 
    sns_message_headers = {
        "x-amz-sns-message-id": sns_message_payload['MessageId'],
        "x-amz-sns-message-type": sns_message_payload["Type"],
        "x-amz-sns-subscription-arn" : event["Records"][0]["EventSubscriptionArn"],
        "x-amz-sns-topic-arn" : sns_message_payload["TopicArn"]
    }
 
    try:
        r = requests.post(url = url, data = json.dumps(sns_message_payload), headers = sns_message_headers)
    except Exceptions as e:
        print(e)
 
    print(r.content)
 
    return {
        'statusCode': 200,
        'body': json.dumps(r.content)
    }

2.    Utilisez le package de déploiement pour mettre à jour la fonction Lambda que vous avez créée précédemment.

Abonnez la fonction Lambda à une ou plusieurs rubriques Amazon SNS


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?