Comment puis-je me connecter à DynamoDB à partir d'une instance Lambda dans un VPC ?

Lecture de 3 minute(s)
0

Je souhaite intégrer Amazon DynamoDB à mon instance AWS Lambda dans un Amazon Virtual Private Cloud (Amazon VPC).

Résolution

Prérequis :

Connecter Lambda à DynamoDB

Procédez comme suit :

  1. Ouvrez la console Lambda.
  2. Dans le volet de navigation, sélectionnez Fonctions.
  3. Sélectionnez Créer une fonction.
  4. Sélectionnez Créer à partir de zéro.
  5. Pour Informations de base, configurez les options suivantes :
    Dans le champ Nom de la fonction, saisissez le nom de votre fonction.
    Pour Exécution, choisissez une option d'exécution. Dans cet exemple, Python 3.12 est utilisé.
    Pour Architecture, sélectionnez x86_64.
  6. Sous Paramètres avancés, configurez les éléments suivants :
    Sélectionnez Activer VPC, puis sélectionnez votre VPC.
    Pour Sous-réseaux, sélectionnez uniquement des sous-réseaux privés.
    Pour Groupes de sécurité, sélectionnez le groupe de sécurité par défaut.
  7. Sélectionnez Créer une fonction.
  8. Sur la page Détails de la fonction, sous Source du code, saisissez le code suivant :
    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!')
        }
    Remarque : Remplacez TableName et Clé par vos valeurs.
  9. Sélectionnez Déployer.
  10. Testez votre fonction.
    Remarque : Pour tester la fonction, le rôle AWS Identity and Access Management (IAM) pour Lambda doit disposer des autorisations appropriées. Pour plus d'informations, consultez la section Gestion des autorisations dans AWS Lambda.

Résolution de problèmes supplémentaires

Pour résoudre les problèmes liés à une fonction Lambda associée à un VPC, effectuez les actions suivantes :

  • Supprimez toutes les connexions aux sous-réseaux publics de votre fonction Lambda. Si vous vous connectez à des sous-réseaux publics, le trafic tente de passer par les sous-réseaux publics et peut provoquer des problèmes d’expiration de délai intermittents.

  • Assurez-vous que le point de terminaison de votre passerelle pour DynamoDB est correctement configuré.

  • Mettez à jour les sous-réseaux privés associés à votre fonction Lambda pour les acheminer via votre point de terminaison de passerelle VPC DynamoDB. Ces points de terminaison disposent de listes de préfixes gérées d’AWS qui simplifient la configuration des paramètres du groupe de sécurité entre Lambda et DynamoDB.
    Exemple de table de routage de sous-réseau privé :

    Route Table: rtb-12345
    Destination        Gateway     Status
    10.0.0.0/16         local      active
    pl-1234           vpce-1234    active
  • Mettez à jour les règles de votre groupe de sécurité Lambda pour autoriser tout le trafic.

Informations connexes

Créer une fonction Lambda avec la console

Utilisation de points de terminaison Amazon VPC pour accéder à DynamoDB

Configurations réseau et VPC

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois