Come posso iscrivere un endpoint HTTP o HTTPS privato a un mio topic Amazon SNS?
3 minuti di lettura
0
Desidero iscrivere un endpoint HTTP o HTTPS privato a un mio topic Amazon Simple Notification Service (Amazon SNS).
Risoluzione
Per iscrivere un endpoint HTTP o HTTPS privato a un topic Amazon SNS, completa i passaggi seguenti.
Crea un gruppo di sicurezza Amazon VPC (LambdaSG) nello stesso Amazon VPC dell'endpoint privato
- Apri la console di Amazon VPC.
- Nel pannello di navigazione, sotto Sicurezza, scegli Gruppi di sicurezza. Quindi scegli Crea gruppo di sicurezza.
- Per Nome del gruppo di sicurezza, inserisci LambdaSG.
- Per ** VPC**, scegli il cloud privato virtuale (VPC) di Amazon in cui si trova l'endpoint privato.
- Scegli Crea gruppo di sicurezza.
Crea una funzione Lambda all'interno dello stesso Amazon VPC e della stessa sottorete dell'endpoint privato e configurala con il gruppo di sicurezza LambdaSG
- Apri la console di Lambda.
- Scegli Crea funzione.
- Scegli Crea da zero.
- Per Nome funzione, inserisci un nome che descriva lo scopo della tua funzione. Per esempio, Private-Endpoint-Amazon-SNS-Topic-Subscription..
- Per Runtime, scegli Python 3.12.
- Scegli Configurazioni aggiuntive. Quindi scegli ** Abilita VPC**.
- Per il VPC, scegli la sottorete in cui si trova l'endpoint privato.
- 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
- Apri la console di Amazon VPC.
- Nel pannello di navigazione, sotto Sicurezza, scegli Gruppi di sicurezza.
- In Gruppi di sicurezza, scegli il gruppo di sicurezza dell'endpoint privato.
- Scegli Modifica regole in entrata.
- Per ** Tipo**, scegli ** HTTP ** o ** HTTPS**. I campi Protocollo e Intervallo di porte vengono compilati automaticamente.
- Per Origine, scegli Personalizzato. Quindi scegli il gruppo di sicurezza LambdaSG.
- Scegli Salva regole.
Configura la funzione Lambda per trasmettere le notifiche Amazon SNS in entrata all'endpoint privato
- Apri la console di Lambda.
- Nel pannello di navigazione, scegli Funzioni.
- In Nome funzione, scegli la funzione che hai creato in precedenza.
- In ** Origine** del ** codice**, sostituisci al codice predefinito il codice seguente:
Importante: sostituisci al valore dell'url l'URL del tuo endpoint privato.from __future__ import print_function import json import urllib3 http = urllib3.PoolManager() 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 = http.request('POST', url, headers=sns_message_headers, body=json.dumps(sns_message_payload)) print(r.data) except Exception as e: print(e) - Scegli Distribuisci.
Iscrivi la funzione Lambda al tuo topic Amazon SNS
Per ulteriori informazioni, consulta Tutorial: Utilizzo di Lambda con Amazon SQS.
- Argomenti
- Application Integration
- Lingua
- Italiano

AWS UFFICIALEAggiornata un anno fa