Saltar al contenido

¿Cómo me conecto a DynamoDB desde una instancia de Lambda en una VPC?

3 minutos de lectura
0

Quiero integrar Amazon DynamoDB con mi instancia de AWS Lambda en Amazon Virtual Private Cloud (Amazon VPC).

Resolución

Requisitos previos:

Conexión de Lambda a DynamoDB

Sigue estos pasos:

  1. Abre la consola de Lambda.
  2. En el panel de navegación, selecciona Funciones.
  3. Selecciona Crear función.
  4. Selecciona Crear desde cero.
  5. En Información básica, configura lo siguiente:
    En Nombre de la función, introduce un nombre para la función.
    En Versión ejecutable, elige una opción de versión ejecutable. En este ejemplo, se utiliza Python 3.12.
    En Arquitectura, elige x86_64.
  6. En Configuración avanzada, configura lo siguiente:
    Selecciona Habilitar VPC y, a continuación, selecciona tu VPC.
    En Subredes, selecciona solo subredes privadas.
    En Grupos de seguridad, selecciona el grupo de seguridad predeterminado.
  7. Selecciona Crear función.
  8. En la página de detalles de la función, en Código fuente, introduce el siguiente código:
    import json
    import boto3
    
    client = boto3.client('dynamodb')
    
    def lambda_handler(event, context):
        response = client.get_item(
            TableName='Music',
            Key={
                'Artist': {
                    'S': 'No One You Know',
                },
                'SongTitle': {
                    'S': 'Call Me Today',
                },
            }
        )
    
        print(response)
    
        return {
            'statusCode': 200,
            'body': json.dumps('Success!')
        }
    Nota: Sustituye TableName y Key por tus valores.
  9. Selecciona Desplegar.
  10. Prueba tu función.
    Nota: Para probar la función, el rol de AWS Identity and Access Management (IAM) para Lambda debe tener los permisos adecuados. Para obtener más información, consulta Administración de permisos en AWS Lambda.

Resolución de problemas adicionales

Para solucionar problemas relacionados con una función de Lambda conectada a una VPC, haz lo siguiente:

  • Elimina las conexiones a subredes públicas de la función de Lambda. Si te conectas a subredes públicas, el tráfico intenta pasar a través de las subredes públicas y puede provocar problemas de tiempo de espera intermitentes.

  • Asegúrate de que el punto de enlace de puerta de enlace para DynamoDB esté configurado correctamente.

  • Actualiza las subredes privadas asociadas a la función de Lambda para que pasen por el punto de enlace de puerta de enlace de la VPC de DynamoDB. Estos puntos de enlace tienen listas de prefijos administradas por AWS que simplifican la configuración de los grupos de seguridad entre Lambda y DynamoDB.
    Ejemplo de tabla de enrutamiento de subredes privadas:

    Route Table: rtb-12345
    Destination        Gateway     Status
    10.0.0.0/16         local      active
    pl-1234           vpce-1234    active
  • Actualiza las reglas del grupo de seguridad de Lambda para permitir todo el tráfico

Información relacionada

Creación de una función de Lambda con la consola

Uso de los puntos de enlace de Amazon VPC para acceder a DynamoDB

Configuraciones de redes y VPC

OFICIAL DE AWSActualizada hace 2 años