

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Activation de l’accès Internet pour les fonctions Lambda connectées à un VPC
<a name="configuration-vpc-internet"></a>

Par défaut, les fonctions Lambda s’exécutent dans un VPC géré par Lambda disposant d’un accès à Internet. Pour accéder aux ressources d’un VPC dans votre compte, vous pouvez ajouter une configuration VPC à une fonction. Cela limite la fonction aux ressources de ce VPC, sauf si le VPC dispose d’un accès à Internet. Cette page explique comment fournir un accès Internet aux fonctions Lambda connectées au VPC.

## Je n’ai pas encore de VPC
<a name="new-vpc"></a>

### Créer le VPC
<a name="create-vpc-internet"></a>

Le **flux de travail de création de VPC** crée toutes les ressources VPC requises pour qu’une fonction Lambda accède à l’Internet public à partir d’un sous-réseau privé, y compris les sous-réseaux, la passerelle NAT, la passerelle Internet et les entrées de table de routage.

**Pour créer le VPC**

1. Ouvrez la console Amazon VPC à l’adresse [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Sur le tableau de bord, choisissez **Créer un VPC**.

1. Sous **Ressources à créer**, choisissez **VPC et plus encore**.

1. **Configurer le VPC**

   1. Pour **Name tag auto-generation** (Génération automatique de balises de nom), saisissez un nom pour le VPC.

   1. Pour le **bloc IPv4 CIDR**, vous pouvez conserver la suggestion par défaut ou saisir le bloc CIDR requis par votre application ou votre réseau.

   1. Si votre application communique à l'aide d' IPv6 adresses, choisissez le bloc **IPv6CIDR, le bloc** CIDR **fourni par Amazon IPv6 **.

1. **Configurer les sous-réseaux**

   1. Pour **Nombre de zones de disponibilité**, choisissez **2**. Nous en recommandons au moins deux AZs pour une haute disponibilité.

   1. Pour **Number of public subnets** (Nombre de sous-réseaux publics), choisissez **2**.

   1. Pour **Number of private subnets** (Nombre de sous-réseaux privés), choisissez **2**.

   1. Vous pouvez conserver le bloc d'adresse CIDR par défaut pour le sous-réseau public ou développer **Personnaliser les blocs d'adresse CIDR du sous-réseau** et saisir un bloc d'adresse CIDR. Pour plus d’informations, consultez [Subnet CIDR blocks](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html).

1. Pour **Passerelles NAT**, choisissez **1 par zone de disponibilité** afin d'améliorer la résilience.

1. Pour la **passerelle Internet de sortie uniquement**, choisissez **Oui** si vous avez choisi d'inclure un bloc IPv6 CIDR.

1. Pour **Points de terminaison de VPC**, conservez la valeur par défaut (**Passerelle S3**). Cette option n’entraîne pas de frais. Pour plus d’informations, consultez [Types of VPC endpoints for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3).

1. Pour **Options DNS**, conservez les paramètres par défaut.

1. Sélectionnez **Create VPC** (Créer un VPC).

### Configurer la fonction Lambda
<a name="vpc-function-internet-create"></a>

**Pour configurer un VPC lorsque vous créez une fonction**

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Choisissez **Créer une fonction**.

1. Sous **Informations de base**, dans **Nom de fonction**, entrez un nom pour votre fonction.

1. Développez **Advanced settings (Paramètres avancés)**.

1. Sélectionnez **Activer le VPC**, puis choisissez un VPC.

1. (Facultatif) Pour autoriser le [ IPv6 trafic sortant, sélectionnez Autoriser le IPv6 trafic](configuration-vpc.md#configuration-vpc-ipv6) **pour les sous-réseaux à double pile**.

1. Pour **Sous-réseaux**, sélectionnez tous les sous-réseaux privés. Les sous-réseaux privés peuvent accéder à Internet via une passerelle NAT. La connexion d’une fonction à un sous-réseau public ne lui donne pas accès à Internet.
**Note**  
Si vous avez sélectionné **Autoriser IPv6 le trafic pour les sous-réseaux à double pile**, tous les sous-réseaux sélectionnés doivent comporter un bloc IPv4 CIDR et un bloc CIDR. IPv6 

1. Pour les **groupes de sécurité**, sélectionnez un groupe de sécurité qui autorise le trafic sortant.

1. Choisissez **Créer une fonction**.

Lambda crée automatiquement un rôle d'exécution avec la politique [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) AWS gérée. Les autorisations de cette politique ne sont nécessaires que pour créer des interfaces réseau élastiques pour la configuration VPC, et non pour invoquer votre fonction. Pour appliquer les autorisations de moindre privilège, vous pouvez supprimer la **AWSLambdaVPCAccessExecutionRole**politique de votre rôle d'exécution après avoir créé la fonction et la configuration VPC. Pour de plus amples informations, veuillez consulter [Autorisations IAM requises](configuration-vpc.md#configuration-vpc-permissions).

**Pour configurer un VPC pour une fonction existante**

Pour ajouter une configuration VPC à une fonction existante, le rôle d’exécution de la fonction doit être [autorisé à créer et à gérer des interfaces réseau élastiques](configuration-vpc.md#configuration-vpc-permissions). La politique [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) AWS gérée inclut les autorisations requises. Pour appliquer les autorisations de moindre privilège, vous pouvez supprimer la **AWSLambdaVPCAccessExecutionRole**politique de votre rôle d'exécution après avoir créé la configuration VPC.

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Choisissez une fonction.

1. Choisissez l’onglet **Configuration** puis choisissez **VPC**.

1. Sous **VPC**, choisissez **Modifier**.

1. Sélectionnez le VPC.

1. (Facultatif) Pour autoriser le [ IPv6 trafic sortant, sélectionnez Autoriser le IPv6 trafic](configuration-vpc.md#configuration-vpc-ipv6) **pour les sous-réseaux à double pile**.

1. Pour **Sous-réseaux**, sélectionnez tous les sous-réseaux privés. Les sous-réseaux privés peuvent accéder à Internet via une passerelle NAT. La connexion d’une fonction à un sous-réseau public ne lui donne pas accès à Internet.
**Note**  
Si vous avez sélectionné **Autoriser IPv6 le trafic pour les sous-réseaux à double pile**, tous les sous-réseaux sélectionnés doivent comporter un bloc IPv4 CIDR et un bloc CIDR. IPv6 

1. Pour les **groupes de sécurité**, sélectionnez un groupe de sécurité qui autorise le trafic sortant.

1. Choisissez **Enregistrer**.

### Tester la fonction
<a name="vpc-function-internet-test"></a>

Utilisez l’exemple de code suivant pour vérifier que votre fonction connectée au VPC peut accéder à l’Internet public. En cas de succès, le code renvoie un code d’état `200`. En cas d’échec, la fonction expire.

------
#### [ Node.js ]

1. Dans le volet **Source du code** de la console Lambda, collez le code suivant dans le fichier **index.mjs**. La fonction envoie une requête HTTP GET à un point de terminaison public et renvoie le code de réponse HTTP pour tester si la fonction a accès à l’Internet public.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/code-source-nodejs.png)  
**Example – Requête HTTP avec async/await**  

   ```
   const url = "https://aws.amazon.com/";
   
   export const handler = async(event) => {
       try {
           const res = await fetch(url);
           console.info("status", res.status);
           return res.status;
       }
       catch (e) {
           console.error(e);
           return 500;
       }
   };
   ```

1. Dans la section **DÉPLOYER**, choisissez **Déployer** pour mettre à jour le code de votre fonction :  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Choisissez l’onglet **Test**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/test-tab.png)

1. Sélectionnez **Tester)**.

1. La fonction renvoie un code d’état `200`. Cela signifie que la fonction dispose d’un accès Internet sortant.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/test-successful-200.png)

   Si la fonction ne parvient pas à accéder à l’Internet public, un message d’erreur de ce type s’affiche :

   ```
   {
     "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds"
   }
   ```

------
#### [ Python ]

1. Dans le volet **Source du code** de la console Lambda, collez le code suivant dans le fichier **lambda\$1function.py**. La fonction envoie une requête HTTP GET à un point de terminaison public et renvoie le code de réponse HTTP pour tester si la fonction a accès à l’Internet public.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/code-source-python.png)

   ```
   import urllib.request
   
   def lambda_handler(event, context):
       try:
           response = urllib.request.urlopen('https://aws.amazon.com')
           status_code = response.getcode()
           print('Response Code:', status_code)
           return status_code
       except Exception as e:
           print('Error:', e)
           raise e
   ```

1. Dans la section **DÉPLOYER**, choisissez **Déployer** pour mettre à jour le code de votre fonction :  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Choisissez l’onglet **Test**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/test-tab.png)

1. Sélectionnez **Tester)**.

1. La fonction renvoie un code d’état `200`. Cela signifie que la fonction dispose d’un accès Internet sortant.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/test-successful-200.png)

   Si la fonction ne parvient pas à accéder à l’Internet public, un message d’erreur de ce type s’affiche :

   ```
   {
     "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds"
   }
   ```

------

## J’ai déjà un VPC
<a name="existing-vpc"></a>

Si vous possédez déjà un VPC mais que vous devez configurer un accès Internet public pour une fonction Lambda, procédez comme suit. Cette procédure suppose que votre VPC possède au moins deux sous-réseaux. Si vous n’avez pas deux sous-réseaux, consultez [Create a subnet](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html) dans le *Guide de l’utilisateur Amazon VPC*.

### Vérification de la configuration de la table de routage
<a name="vpc-internet-routes"></a>

1. Ouvrez la console Amazon VPC à l’adresse [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Choisissez l’**ID de VPC**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/vpc-id.png)

1. Faites défiler la page jusqu’à la section **Carte des ressources**. Notez les mappages des tables de routage. Ouvrez chaque table de routage mappée à un sous-réseau.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/route-table-associations.png)

1. Faites défiler jusqu’à l’onglet **Routes**. Passez en revue les itinéraires pour déterminer si votre VPC possède les deux tables de routage suivantes. Chacune de ces exigences doit être satisfaite par une table de routage distincte.
   + Le trafic Internet (`0.0.0.0/0`pour IPv4, `::/0` pour IPv6) est acheminé vers une passerelle Internet (). `igw-xxxxxxxxxx` Cela signifie que le sous-réseau associé à la table de routage est un sous-réseau public.
**Note**  
Si votre sous-réseau ne possède pas de bloc IPv6 CIDR, vous ne verrez que la IPv4 route ()`0.0.0.0/0`.  
**Example Table de routage de sous-réseau public**    
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/routes-public.png)
   + Le trafic Internet pour IPv4 (`0.0.0.0/0`) est acheminé vers une passerelle NAT (`nat-xxxxxxxxxx`) associée à un sous-réseau public. Cela signifie que le sous-réseau est un sous-réseau privé qui peut accéder à l’Internet via la passerelle NAT.
**Note**  
Si votre sous-réseau comporte un bloc IPv6 CIDR, la table de routage doit également acheminer le IPv6 trafic Internet (`::/0`) vers une passerelle Internet de sortie uniquement (). `eigw-xxxxxxxxxx` Si votre sous-réseau ne possède pas de bloc IPv6 CIDR, vous ne verrez que la IPv4 route ()`0.0.0.0/0`.  
**Example table de routage de sous-réseau privé**    
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/routes-private.png)

1. Répétez l’étape précédente jusqu’à ce que vous ayez examiné chaque table de routage associée à un sous-réseau de votre VPC et confirmé que vous disposez d’une table de routage avec une passerelle Internet et d’une table de routage avec une passerelle NAT.

   Si vous n’avez pas deux tables de routage, l’une avec une route vers une passerelle Internet et l’autre avec une route vers une passerelle NAT, suivez ces étapes pour créer les ressources manquantes et les entrées de table de routage.

### Création d’une table de routage
<a name="create-route-table"></a>

Suivez les étapes ci-dessous pour créer une table de routage et l’associer à un sous-réseau.

**Pour créer une table de routage personnalisée à l’aide de la console Amazon VPC**

1. Ouvrez la console Amazon VPC à l’adresse [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Dans le volet de navigation, choisissez **Route tables** (Tables de routage).

1. Choisissez **Créer une table de routage**.

1. (Facultatif) Pour **Nom**, entrez un nom pour votre table de routage. 

1. Pour **VPC**, choisissez votre VPC. 

1. (Facultatif) Pour ajouter une identification, choisissez **Add new tag** (Ajouter une identification) et saisissez la clé et la valeur de l'identification.

1. Choisissez **Créer une table de routage**.

1. Sur l'onglet **Associations de sous-réseau**, choisissez **Modifier les associations de sous-réseau**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/route-table-subnet.png)

1. Sélectionnez la case à cocher pour le sous-réseau à associer à la table de routage.

1. Choisissez **Save associations (Enregistrer les associations)**.

### Création d'une passerelle Internet
<a name="create-igw"></a>

Procédez comme suit pour créer une passerelle Internet, l’associer à votre VPC et l’ajouter à la table de routage de votre sous-réseau public.

**Pour créer une passerelle Internet**

1. Ouvrez la console Amazon VPC à l’adresse [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Dans le panneau de navigation, choisissez **Passerelles Internet**.

1. Choisissez **Créer une passerelle Internet**.

1. (Facultatif) Saisissez un nom pour votre passerelle Internet.

1. (Facultatif) Pour ajouter une identification, choisissez **Add new tag** (Ajouter une identification) et saisissez la clé et la valeur de l’identification.

1. Choisissez **Créer une passerelle Internet**.

1. Choisissez **Attacher à un VPC** dans la bannière en haut de l’écran, sélectionnez un VPC disponible, puis choisissez **Attacher une passerelle Internet**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/igw-attach-vpc.png)

1. Choisissez l’**ID de VPC**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/igw-subnet-1.png)

1. Sélectionnez à nouveau l’**ID de VPC** pour ouvrir la page des détails.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/igw-your-vpcs.png)

1. Faites défiler vers le bas jusqu’à la section **Carte des ressources** et choisissez un sous-réseau. Les détails du sous-réseau s’affichent dans un nouvel onglet.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/vpc-subnets.png)

1. Cliquez sur le lien sous **Table de routage**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/subnet-route-table.png)

1. Choisissez l’**ID de la table de routage** pour ouvrir la page de détails de la table de routage.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/route-table-id.png)

1. Sous **Routes**, choisissez la **Modifier des routes**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/edit-routes.png)

1. Choisissez **Ajouter une route**, puis saisissez `0.0.0.0/0` dans la zone **Destination**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/create-route-1.png)

1. Pour **Cible**, sélectionnez **Passerelle Internet**, puis choisissez la passerelle Internet que vous avez créée précédemment. Si votre sous-réseau possède un bloc IPv6 CIDR, vous devez également ajouter une route `::/0` vers la même passerelle Internet.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/create-route-2.png)

1. Sélectionnez **Enregistrer les modifications**.

### Créer une passerelle NAT
<a name="create-nat-gateway"></a>

Suivez ces étapes pour créer une passerelle NAT, l’associer à un sous-réseau public, puis l’ajouter à la table de routage de votre sous-réseau privé.

**Pour créer une passerelle NAT et l’associer à un sous-réseau public**

1. Dans le volet de navigation, sélectionnez **Passerelles NAT**.

1. Sélectionnez **Créer une passerelle NAT**.

1. (Facultatif) Saisissez un nom pour votre passerelle NAT.

1. Pour **Sous-réseau**, sélectionnez le sous-réseau public dans votre VPC. (Un sous-réseau public est un sous-réseau qui a une entrée de table de routage comportant une route vers une passerelle Internet)
**Note**  
Les passerelles NAT sont associées à un sous-réseau public, mais l’entrée de la table de routage se trouve dans le sous-réseau privé.

1. Pour **ID d’allocation IP élastique**, sélectionnez une adresse IP élastique ou choisissez **Allouer une adresse IP élastique**.

1. Sélectionnez **Créer une passerelle NAT**.

**Pour ajouter une route vers la passerelle NAT dans la table de routage du sous-réseau privé**

1. Dans le panneau de navigation, choisissez **Subnets** (Sous-réseaux).

1. Sélectionnez un sous-réseau privé dans votre VPC. (Un sous-réseau privé est un sous-réseau qui ne comporte pas de route vers une passerelle Internet dans sa table de routage)

1. Cliquez sur le lien sous **Table de routage**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/subnet-route-table.png)

1. Choisissez l’**ID de la table de routage** pour ouvrir la page de détails de la table de routage.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/route-table-id.png)

1. Choisissez l’onglet **Routes**, puis **Modifier des routes**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/route-table-edit-routes.png)

1. Choisissez **Ajouter une route**, puis saisissez `0.0.0.0/0` dans la zone **Destination**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/create-route-1.png)

1. Pour **Cible**, choisissez **Passerelle NAT**, puis sélectionnez la passerelle NAT que vous avez créée.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/create-route-nat.png)

1. Sélectionnez **Enregistrer les modifications**.

### Créer une passerelle Internet de sortie uniquement (uniquement) IPv6
<a name="create-egress-gateway"></a>

Procédez comme suit pour créer une passerelle Internet de sortie uniquement et l’ajouter à la table de routage de votre sous-réseau privé.

**Pour créer une passerelle Internet de sortie uniquement**

1. Dans le volet de navigation, choisissez **Passerelles Internet de sortie uniquement**.

1. Choisissez **Créer une passerelle Internet de sortie uniquement**.

1. (Facultatif) Saisissez un nom.

1. Sélectionnez le VPC dans lequel créer la passerelle Internet de sortie uniquement. 

1. Choisissez **Créer une passerelle Internet de sortie uniquement**.

1. Choisissez le lien sous **ID du VPC attaché**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/eigw-details.png)

1. Sélectionnez le lien sous l’**ID de VPC** pour ouvrir la page des détails.

1. Faites défiler vers le bas jusqu’à la section **Carte des ressources** et choisissez un sous-réseau privé. (Un sous-réseau privé est un sous-réseau qui ne comporte pas de route vers une passerelle Internet dans sa table de routage) Les détails du sous-réseau s’affichent dans un nouvel onglet.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/vpc-subnet-private.png)

1. Cliquez sur le lien sous **Table de routage**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/private-subnet-route-table.png)

1. Choisissez l’**ID de la table de routage** pour ouvrir la page de détails de la table de routage.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/route-table-id.png)

1. Sous **Routes**, choisissez la **Modifier des routes**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/edit-routes.png)

1. Choisissez **Ajouter une route**, puis saisissez `::/0` dans la zone **Destination**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/create-route-1.png)

1. Pour **Cible**, sélectionnez **Passerelle Internet de sortie uniquement**, puis choisissez la passerelle que vous avez créée précédemment.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/eigw-route.png)

1. Sélectionnez **Enregistrer les modifications**.

### Configurer la fonction Lambda
<a name="vpc-function-internet-create-existing"></a>

**Pour configurer un VPC lorsque vous créez une fonction**

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Choisissez **Créer une fonction**.

1. Sous **Informations de base**, dans **Nom de fonction**, entrez un nom pour votre fonction.

1. Développez **Advanced settings (Paramètres avancés)**.

1. Sélectionnez **Activer le VPC**, puis choisissez un VPC.

1. (Facultatif) Pour autoriser le [ IPv6 trafic sortant, sélectionnez Autoriser le IPv6 trafic](configuration-vpc.md#configuration-vpc-ipv6) **pour les sous-réseaux à double pile**.

1. Pour **Sous-réseaux**, sélectionnez tous les sous-réseaux privés. Les sous-réseaux privés peuvent accéder à Internet via une passerelle NAT. La connexion d’une fonction à un sous-réseau public ne lui donne pas accès à Internet.
**Note**  
Si vous avez sélectionné **Autoriser IPv6 le trafic pour les sous-réseaux à double pile**, tous les sous-réseaux sélectionnés doivent comporter un bloc IPv4 CIDR et un bloc CIDR. IPv6 

1. Pour les **groupes de sécurité**, sélectionnez un groupe de sécurité qui autorise le trafic sortant.

1. Choisissez **Créer une fonction**.

Lambda crée automatiquement un rôle d'exécution avec la politique [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) AWS gérée. Les autorisations de cette politique ne sont nécessaires que pour créer des interfaces réseau élastiques pour la configuration VPC, et non pour invoquer votre fonction. Pour appliquer les autorisations de moindre privilège, vous pouvez supprimer la **AWSLambdaVPCAccessExecutionRole**politique de votre rôle d'exécution après avoir créé la fonction et la configuration VPC. Pour de plus amples informations, veuillez consulter [Autorisations IAM requises](configuration-vpc.md#configuration-vpc-permissions).

**Pour configurer un VPC pour une fonction existante**

Pour ajouter une configuration VPC à une fonction existante, le rôle d’exécution de la fonction doit être [autorisé à créer et à gérer des interfaces réseau élastiques](configuration-vpc.md#configuration-vpc-permissions). La politique [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) AWS gérée inclut les autorisations requises. Pour appliquer les autorisations de moindre privilège, vous pouvez supprimer la **AWSLambdaVPCAccessExecutionRole**politique de votre rôle d'exécution après avoir créé la configuration VPC.

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Choisissez une fonction.

1. Choisissez l’onglet **Configuration** puis choisissez **VPC**.

1. Sous **VPC**, choisissez **Modifier**.

1. Sélectionnez le VPC.

1. (Facultatif) Pour autoriser le [ IPv6 trafic sortant, sélectionnez Autoriser le IPv6 trafic](configuration-vpc.md#configuration-vpc-ipv6) **pour les sous-réseaux à double pile**.

1. Pour **Sous-réseaux**, sélectionnez tous les sous-réseaux privés. Les sous-réseaux privés peuvent accéder à Internet via une passerelle NAT. La connexion d’une fonction à un sous-réseau public ne lui donne pas accès à Internet.
**Note**  
Si vous avez sélectionné **Autoriser IPv6 le trafic pour les sous-réseaux à double pile**, tous les sous-réseaux sélectionnés doivent comporter un bloc IPv4 CIDR et un bloc CIDR. IPv6 

1. Pour les **groupes de sécurité**, sélectionnez un groupe de sécurité qui autorise le trafic sortant.

1. Choisissez **Enregistrer**.

### Tester la fonction
<a name="vpc-function-internet-test-existing"></a>

Utilisez l’exemple de code suivant pour vérifier que votre fonction connectée au VPC peut accéder à l’Internet public. En cas de succès, le code renvoie un code d’état `200`. En cas d’échec, la fonction expire.

------
#### [ Node.js ]

1. Dans le volet **Source du code** de la console Lambda, collez le code suivant dans le fichier **index.mjs**. La fonction envoie une requête HTTP GET à un point de terminaison public et renvoie le code de réponse HTTP pour tester si la fonction a accès à l’Internet public.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/code-source-nodejs.png)  
**Example – Requête HTTP avec async/await**  

   ```
   const url = "https://aws.amazon.com/";
   
   export const handler = async(event) => {
       try {
           const res = await fetch(url);
           console.info("status", res.status);
           return res.status;
       }
       catch (e) {
           console.error(e);
           return 500;
       }
   };
   ```

1. Dans la section **DÉPLOYER**, choisissez **Déployer** pour mettre à jour le code de votre fonction :  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Choisissez l’onglet **Test**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/test-tab.png)

1. Sélectionnez **Tester)**.

1. La fonction renvoie un code d’état `200`. Cela signifie que la fonction dispose d’un accès Internet sortant.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/test-successful-200.png)

   Si la fonction ne parvient pas à accéder à l’Internet public, un message d’erreur de ce type s’affiche :

   ```
   {
     "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds"
   }
   ```

------
#### [ Python ]

1. Dans le volet **Source du code** de la console Lambda, collez le code suivant dans le fichier **lambda\$1function.py**. La fonction envoie une requête HTTP GET à un point de terminaison public et renvoie le code de réponse HTTP pour tester si la fonction a accès à l’Internet public.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/code-source-python.png)

   ```
   import urllib.request
   
   def lambda_handler(event, context):
       try:
           response = urllib.request.urlopen('https://aws.amazon.com')
           status_code = response.getcode()
           print('Response Code:', status_code)
           return status_code
       except Exception as e:
           print('Error:', e)
           raise e
   ```

1. Dans la section **DÉPLOYER**, choisissez **Déployer** pour mettre à jour le code de votre fonction :  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Choisissez l’onglet **Test**.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/test-tab.png)

1. Sélectionnez **Tester)**.

1. La fonction renvoie un code d’état `200`. Cela signifie que la fonction dispose d’un accès Internet sortant.  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/test-successful-200.png)

   Si la fonction ne parvient pas à accéder à l’Internet public, un message d’erreur de ce type s’affiche :

   ```
   {
     "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds"
   }
   ```

------