Je veux connecter une fonction AWS Lambda à des ressources qui se trouvent sur un cloud privé virtuel (VPC) AWS dédié.

Actuellement, AWS Lambda ne prend pas en charge l'exécution dans un VPC de location dédiée et, par conséquent, vous devez appairer le VPC dédié à un VPC standard contenant votre fonction Lambda.

Cet article suppose que vous possédez des connaissances de base de NodeJS et de l'interface de ligne de commande AWS.

 

Création d'un package de déploiement NodeJS Lambda

Dans votre environnement local, créez un package de déploiement NodeJS Lambda qui inclut le module net-ping. Cet exemple de code source utilise une implémentation JS de ping pour vérifier une réponse, afin de tester la connectivité à une instance EC2 dans un VPC de location dédiée :

var ping = require('ping-net');

 

 

exports.handler = function(event, context){

    var targetIp = event.target_ip;

    var targetPort = event.target_port;

 

 

    ping.ping({ address: targetIp, port:targetPort}, function(data) {

        console.log(data);

        context.succeed();

    });

};

Configuration des VPC

1. Remarque : Si vous avez déjà configuré un VPC de location par défaut, vous pouvez ignorer cette étape.
Dans la console Amazon VPC, créez un VPC de location par défaut avec un bloc d'adresse CIDR 10.0.0.0/16 et un VPC de location dédiée avec un bloc d'adresse CIDR 11.0.0.0/16. Si vous utilisez un autre bloc d'adresse CIDR, assurez-vous que le VPC par défaut et le VPC dédié ont des blocs d'adresse différents qui ne se chevauchent pas.

2. Dans le volet de navigation, choisissez Connexions d'appairage.

3. Choisissez Créer une connexion d'appairage de VPC.

4. Entrez le nom du VPC de location dédiée dans le champ Balise Nom et l'ID de VPC du VPC de location par défaut dans le champ VPC local à appairer. Sélectionnez le bouton radio Mon compte , entrez l'ID de VPC du VPC de location dédiée dans le champ VPC , puis choisissez Créer une connexion d'appairage de VPC.

5. Une table de routage est affectée à chaque VPC. Pour que les deux VPC soient en mesure de communiquer, les tables de routage doivent être configurées comme suit :

VPC de location dédiée :

Destination

Target

Statut

Propagated

 

12.0.0.0/16

local  

Actif

Non

 

11.0.0.0/16

Actif

Non

 

VPC de location à appairer :

Destination

Target

Statut

Propagated

 

11.0.0.0/16  

local  

Actif

Non

 

12.0.0.0/16  

Actif

Non

 

1. Créez une nouvelle fonction Lambda dans la même région que celle où se trouve le VPC de location par défaut.

Veillez à choisir le rôle lambda_basic_vpc_execution . S'il n'existe pas, choisissez Créer un rôle et entrez la stratégie suivante :

{

    "Version":"2012-10-17",

    "Statement": [

        {

            "Effect":"Allow",

            "Action": [

                "logs:CreateLogGroup",

                "logs:CreateLogStream",

                "logs:PutLogEvents"

            ],

            "Resource": "arn:aws:logs:*:*:*"

        },

        {

            "Effect":"Allow",

            "Action": [

                "ec2:CreateNetworkInterface",

                "ec2:DescribeNetworkInterfaces",

                "ec2:DetachNetworkInterface",

                "ec2:DeleteNetworkInterface"

            ],

            "Resource": "*"

        }

    ]

}

2. Pour la configuration du VPC, choisissez VPC de location par défaut.

3. Choisissez Créer.

Test de la connexion

1. Démarrez une instance EC2 dans votre VPC dédié si une instance n'est pas déjà en cours d'exécution.

2. Vérifiez que les listes de contrôle d'accès des deux sous-réseaux du VPC autorisent le trafic sur le port que vous testez, ainsi que pour le groupe de sécurité de l'instance EC2.

3. Dans la mesure où l'utilitaire ping NodeJS requiert un numéro de port et une adresse IP, vérifiez qu'un service est en cours d'exécution sur l'instance EC2 sur laquelle la fonction Lambda peut effectuer un test ping.  Pour ce faire, installez un serveur web simplifié sur l'instance, par exemple lighttpd. La valeur par défaut du port est 80.

sudo yum install lighttpd

sudo service lighttpd start

4. Configurez l'événement de test.

Exemple d'événement :

{

    "target_ip": ,

    "target_port": 80

}

5. Pour vérifier que la connexion a été établie, recherchez une sortie similaire à la suivante :

[ { adresse: ,

port: 80,

attempts: 10,

avg: 8.156777100000003,

max: 39.088728,

min: 1.144363,

results:

      [ [Objet],

        [Objet],

        [Objet],

        [Objet],

        [Objet],

        [Objet],

        [Objet],

        [Objet],

        [Objet],

        [Objet] ] } ]

 

La sortie de la fonction affiche des valeurs différentes de zéro pour la latence moyenne, max. et min., ce qui indique que la connexion d'appairage du VPC a été correctement configurée.

Lambda, VPC, EC2, Linux


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 22/08/2016