Come faccio a sottoscrivere un endpoint HTTP o HTTPS privato al mio argomento Amazon SNS?

4 minuti di lettura
0

Voglio sottoscrivere un endpoint HTTP o HTTPS privato al mio argomento Amazon Simple Notification Service (Amazon SNS). Come posso configurarlo?

Breve descrizione

Per sottoscrivere un endpoint HTTP o HTTPS privato a un argomento Amazon SNS, procedi come segue:

Soluzione

Crea un gruppo di sicurezza Amazon VPC (LambdaSG) nello stesso Amazon VPC dell'endpoint privato

1.    Apri la console Amazon VPC.

2.    Nel pannello di navigazione a sinistra, in Sicurezza, scegli Gruppi di sicurezza. Quindi, scegli Crea gruppo di sicurezza.

3.    In Nome del gruppo di sicurezza, inserisci LambdaSG.

4.    Per** VPC**, scegli l'Amazon VPC in cui si trova l'endpoint privato.

5.    Scegli Crea gruppo di sicurezza.

Crea una funzione Lambda all'interno dello stesso VPC e sottorete Amazon dell'endpoint privato e aggiungila al gruppo di sicurezza LambdaSG

1.    Apri la console Lambda.

2.    Scegli Crea funzione.

3.    Scegli Crea da zero.

4.    In Nome funzione, inserisci un nome che descriva lo scopo della tua funzione. Ad esempio, Private-Endpoint-Amazon-SNS-Topic-Subscription..

5.    Per Runtime, scegli Python 3.8.

6.    ScegliImpostazioni avanzate.

7.    Per VPC: opzionale, scegli l'Amazon VPC in cui si trova l'endpoint privato. Vengono visualizzati gli elenchi a discesa per le Sottoreti e i gruppi di sicurezza.

8.    Per Sottoreti, scegli la sottorete in cui si trova l'endpoint privato.

9.    Per i Gruppi di sicurezza, scegli LambdaSG.

10.    Scegli Crea funzione.

Modifica le regole del gruppo di sicurezza dell'endpoint privato per consentire la connessione in entrata dal gruppo di sicurezza della funzione Lambda

1.    Apri la console Amazon VPC.

2.    Nel pannello di navigazione a sinistra, in Sicurezza, scegli Gruppi di sicurezza.

3.    Scegli il nome del gruppo di sicurezza dell'endpoint privato.

4.    Scegli Modifica regole in entrata.

5.    Per Tipo, scegli HTTP o HTTPS, a seconda del tuo caso d'uso. I campi Protocollo e Intervallo di porte vengono compilati automaticamente.

6.    Per Origine, scegli Personalizzato. Quindi, scegli il gruppo di sicurezza LambdaSG.

7.    Scegli Salva regole.

Configura la funzione Lambda in modo che trasmetta le notifiche Amazon SNS in entrata all'endpoint privato

1.    Crea un pacchetto di implementazione Lambda che includa la libreria di richieste Python della tua funzione Lambda. Segui le istruzioni in Creare il pacchetto di implementazione nel Tutorial: Creazione di una funzione Lambda in Python 3.8. Per il passaggio 3, sostituisci il codice fornito nel tutorial con il seguente frammento di codice di esempio.

Frammento di codice Python che utilizza la libreria di richieste per pubblicare le notifiche in arrivo da Amazon SNS all'endpoint privato

Importante: Sostituisci il valore dell'url con l'URL del tuo endpoint privato.

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.    Usa il pacchetto di implementazione per aggiornare la funzione Lambda che hai creato in precedenza.

Sottoscrivi la funzione Lambda al tuo argomento Amazon SNS

Segui le istruzioni in How do I subscribe a Lambda function to an Amazon SNS topic in the same account?


AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa