¿Cómo suscribo un punto de conexión HTTP o HTTPS privado a mi tema de Amazon SNS?

4 minutos de lectura
0

Quiero suscribir un punto de conexión HTTP o HTTPS privado a mi tema de Amazon Simple Notification Service (Amazon SNS). ¿Cómo configuro eso?

Breve descripción

Para suscribir un punto de conexión HTTP o HTTPS privado a un tema de Amazon SNS, haga lo siguiente:

Resolución

Cree un grupo de seguridad de Amazon VPC (LambdaSG) en la misma Amazon VPC que el punto de conexión privado

1.Abra la consola de Amazon VPC.

2.En el panel de navegación de la izquierda, en Seguridad, seleccione Grupos de seguridad. A continuación, seleccione Crear grupo de seguridad.

3.En Nombre del grupo de seguridad, escriba LambdaSG.

4.Para VPC, elija la Amazon VPC en la que se encuentra el punto de conexión privado.

5.Seleccione Crear grupo de seguridad.

Cree una función Lambda dentro de la misma VPC y subred de Amazon que el punto de conexión privado y agréguela al grupo de seguridad LambdaSG

1.Abra la consola de Lambda.

2.Elija Crear función.

3.Elija Autor desde cero.

4.En Nombre de la función, introduzca un nombre que describa el propósito de la función. Por ejemplo, Private-endpoint-Amazon-SNS-topic-subscription.

5.Para Tiempo de ejecución, elija Python 3.8.

6.Seleccione Configuración avanzada.

7.Para VPC - opcional, elija la Amazon VPC en la que se encuentra el punto de conexión privado. Aparecen listas desplegables de subredes y grupos de seguridad.

8.En el caso de las Subredes, elija la subred en la que se encuentra el punto de conexión privado.

9.Para grupos de seguridad, elija LambdaSG.

10.Elija Crear función.

Edite las reglas del grupo de seguridad del punto de conexión privado para permitir la conexión entrante desde el grupo de seguridad de la función Lambda

1.Abra la consola de Amazon VPC.

2.En el panel de navegación de la izquierda, en Seguridad, seleccione Grupos de seguridad.

3.Elija el nombre del grupo de seguridad del punto de conexión privado.

4.Seleccione Editar reglas de entrada.

5.En Tipo, elija HTTP o HTTPS, según su caso de uso. Los campos Protocolo y Rango de puertos se rellenan automáticamente.

6.En Fuente, elija Personalizado. A continuación, elija el grupo de seguridad LambdaSG.

7.Seleccione Guardar reglas.

Configure la función Lambda para que pase las notificaciones entrantes de Amazon SNS al punto de conexión privado

1.Cree un paquete de implementación de Lambda que incluya la biblioteca de solicitudes de Python de la función Lambda. Siga las instrucciones para crear el paquete de despliegue del Tutorial: Crear una función Lambda en Python 3.8. Para el paso 3, sustituya el código proporcionado en el tutorial por el siguiente fragmento de código de ejemplo.

Fragmento de código de Python que usa la biblioteca de solicitudes para publicar las notificaciones entrantes de Amazon SNS en el punto de conexión privado

Importante: Sustituya el valor de la URL por la URL de su punto de conexión privado.

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.Utilice el paquete de despliegue para actualizar la función Lambda que creó anteriormente.

Suscriba la función Lambda a su tema de Amazon SNS

Siga las instrucciones de ¿Cómo suscribo una función de Lambda a un tema de Amazon SNS en la misma cuenta?


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años