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 :
- Ouvrez la console Lambda.
- Dans le volet de navigation, sélectionnez Fonctions.
- Sélectionnez Créer une fonction.
- Sélectionnez Créer à partir de zéro.
- 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.
- 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.
- Sélectionnez Créer une fonction.
- 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.
- Sélectionnez Déployer.
- 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