

# Habilitación del acceso a Internet para funciones de Lambda conectadas a VPC
<a name="configuration-vpc-internet"></a>

De forma predeterminada, las funciones de Lambda se ejecutan en una VPC administrada por Lambda que tiene acceso a Internet. Para acceder a los recursos de una VPC de su cuenta, puede agregar una configuración de VPC a una función. Esto restringe la función a los recursos de esa VPC, a menos que la VPC tenga acceso a Internet. En esta página, se explica cómo proporcionar acceso a Internet a las funciones de Lambda conectadas por VPC.

## Aún no tengo una VPC
<a name="new-vpc"></a>

### Creación de la VPC
<a name="create-vpc-internet"></a>

El **Flujo de trabajo de creación de VPC** crea todos los recursos de VPC necesarios para que una función de Lambda acceda a la Internet pública desde una subred privada, incluidas las subredes, la puerta de enlace NAT, la puerta de enlace de Internet y las entradas de la tabla de enrutamiento.

**Para crear la VPC**

1. Abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. En el panel, elija **Crear VPC**.

1. En **Recursos para crear**, elija **VPC y más**.

1. **Configurar la VPC**

   1. En **Generación automática de etiquetas de nombre**, ingrese un nombre para la VPC.

   1. En **Bloque de CIDR IPv4**, puede conservar la sugerencia predeterminada o, como alternativa, ingresar el bloque de CIDR necesario para su aplicación o red.

   1. Si la aplicación se comunica mediante direcciones IPv6, elija **Bloque de CIDR IPv6**, **Bloque de CIDR IPv6 proporcionado por Amazon**.

1. **Configurar las subredes**

   1. Para **Número de zonas de disponibilidad**, elija **2**. Se recomiendan como mínimo dos AZ para una alta disponibilidad.

   1. Para **Número de subredes públicas**, elija **2**.

   1. Para **Número de subredes privadas**, elija **2**.

   1. Puede conservar el bloque de CIDR predeterminado para la subred pública o, si lo prefiere, puede ampliar **Personalizar los bloques de CIDR de la subred** e introducir un bloque de CIDR. Para obtener más información, consulte [Subred de bloques CIDR](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html).

1. En **Puertas de enlace NAT**, elija **1 por AZ** para mejorar la resiliencia.

1. Para **Puerta de enlace de Internet de solo salida**, elija **Sí** si optó por incluir un bloque CIDR de IPv6.

1. En **Puntos de conexión de VPC**, mantenga el valor predeterminado (**Puerta de enlace de S3**). Esta opción no tiene ningún costo. Para obtener más información, consulte [Tipos de puntos de conexión de VPC de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3).

1. Mantenga la configuración predeterminada para **las opciones DNS**.

1. Seleccione **Creación de VPC**.

### Configuración de la función de Lambda
<a name="vpc-function-internet-create"></a>

**Para configurar una VPC al crear una función**

1. Abra la página de [Functions](https://console.aws.amazon.com/lambda/home#/functions) (Funciones) en la consola de Lambda.

1. Seleccione **Creación de función**.

1. En **Basic information (Información básica)**, para **Function name (Nombre de función)**, escriba un nombre para la función.

1. Amplíe **Configuración avanzada**.

1. Seleccione **Habilitar VPC** y, a continuación, elija una VPC.

1. (Opcional) Para permitir el [tráfico IPv6 saliente](configuration-vpc.md#configuration-vpc-ipv6), seleccione **Permitir tráfico IPv6 para subredes de doble pila**.

1. En **Subredes**, seleccione todas las subredes privadas. Las subredes privadas pueden obtener acceso a Internet a través de una puerta de enlace NAT. La conexión de una función a una subred pública no le concede acceso a Internet.
**nota**  
Si seleccionó **Permitir tráfico IPv6 para subredes de pila doble**, todas las subredes seleccionadas deben tener un bloque de CIDR IPv4 y un bloque de CIDR IPv6.

1. En el caso de los **Grupos de seguridad**, seleccione un grupo de seguridad que permita el tráfico saliente.

1. Seleccione **Creación de función**.

Lambda crea automáticamente un rol de ejecución con la política [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) administrada por AWS. Los permisos de esta política solo son necesarios para crear interfaces de redes elásticas para la configuración de la VPC, no para invocar la función. Para aplicar permisos con privilegios mínimos, puede eliminar la política **AWSLambdaVPCAccessExecutionRole** de su rol de ejecución después de crear la función y la configuración de VPC. Para obtener más información, consulte [Permisos de IAM necesarios](configuration-vpc.md#configuration-vpc-permissions).

**Para configurar una VPC para una función existente**

Para agregar una configuración de VPC a una función existente, el rol de ejecución de la función debe tener [permiso para crear y administrar interfaces de redes elásticas](configuration-vpc.md#configuration-vpc-permissions). La política [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) administrada por AWS incluye los permisos requeridos. Para aplicar permisos con privilegios mínimos, puede eliminar la política **AWSLambdaVPCAccessExecutionRole** de su rol de ejecución después de crear la configuración de VPC.

1. Abra la [página de Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Elija una función.

1. Elija la pestaña **Configuración** y, a continuación, elija **VPC**.

1. En **VPC**, elija **Edit (Editar)**.

1. Seleccione la VPC.

1. (Opcional) Para permitir el [tráfico IPv6 saliente](configuration-vpc.md#configuration-vpc-ipv6), seleccione **Permitir tráfico IPv6 para subredes de doble pila**.

1. En **Subredes**, seleccione todas las subredes privadas. Las subredes privadas pueden obtener acceso a Internet a través de una puerta de enlace NAT. La conexión de una función a una subred pública no le concede acceso a Internet.
**nota**  
Si seleccionó **Permitir tráfico IPv6 para subredes de pila doble**, todas las subredes seleccionadas deben tener un bloque de CIDR IPv4 y un bloque de CIDR IPv6.

1. En el caso de los **Grupos de seguridad**, seleccione un grupo de seguridad que permita el tráfico saliente.

1. Seleccione **Save**.

### Prueba de la función
<a name="vpc-function-internet-test"></a>

Use el siguiente código de ejemplo para confirmar que su función conectada a VPC puede llegar a la Internet pública. Si se ejecuta correctamente, el código devuelve un código de estado `200`. Si no funciona, la función agota el tiempo de espera.

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

1. En el panel **Código fuente** de la consola de Lambda, pegue el siguiente código en el archivo **index.mjs**. La función realiza una solicitud HTTP GET a un punto de conexión público y devuelve el código de respuesta HTTP para comprobar si la función tiene acceso a la Internet pública.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/code-source-nodejs.png)  
**Example — Solicitud HTTP con 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. En la sección **IMPLEMENTAR** elija **Implementar** para actualizar el código de la función:  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Elija la pestaña **Prueba**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/test-tab.png)

1. Seleccione **Probar**

1. La función devuelve un código de estado `200`. Esto significa que la función tiene acceso saliente a Internet.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/test-successful-200.png)

   Si la función no puede acceder a la Internet pública, aparecerá un mensaje de error como este:

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

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

1. En el panel **Código fuente** de la consola de Lambda, pegue el siguiente código en el archivo **lambda\$1function.py**. La función realiza una solicitud HTTP GET a un punto de conexión público y devuelve el código de respuesta HTTP para comprobar si la función tiene acceso a la Internet pública.  
![\[\]](http://docs.aws.amazon.com/es_es/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. En la sección **IMPLEMENTAR** elija **Implementar** para actualizar el código de la función:  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Elija la pestaña **Prueba**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/test-tab.png)

1. Seleccione **Probar**

1. La función devuelve un código de estado `200`. Esto significa que la función tiene acceso saliente a Internet.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/test-successful-200.png)

   Si la función no puede acceder a la Internet pública, aparecerá un mensaje de error como este:

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

------

## Ya tengo una VPC
<a name="existing-vpc"></a>

Si ya tiene una VPC, pero necesita configurar el acceso público a Internet para una función de Lambda, siga estos pasos. Este procedimiento supone que la VPC tiene, como mínimo, dos subredes. Si no tiene dos subredes, consulte [Crear una subred](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html) en la *Guía del usuario de Amazon VPC*.

### Verifique la configuración de la tabla de enrutamiento
<a name="vpc-internet-routes"></a>

1. Abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Elija el **ID de la VPC**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/vpc-id.png)

1. Desplácese hasta la sección **Mapa de recursos**. Tenga en cuenta las asignaciones de tablas de enrutamiento. Abra cada tabla de enrutamiento que esté mapeada a una subred.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/route-table-associations.png)

1. Desplácese hasta la pestaña **Rutas**. Revise las rutas para determinar si su VPC tiene las siguientes tablas de enrutamiento. Cada uno de estos requisitos debe cumplirse mediante una tabla de enrutamiento independiente.
   + El tráfico con destino a Internet (`0.0.0.0/0` para IPv4, `::/0` para IPv6) se enruta a una puerta de enlace de Internet (`igw-xxxxxxxxxx`). Esto significa que la subred asociada a la tabla de enrutamiento es una subred pública.
**nota**  
Si su subred no tiene un bloque CIDR de IPv6, solo verá la ruta IPv4 (`0.0.0.0/0`).  
**Example tabla de enrutamiento de la subred pública**    
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/routes-public.png)
   + El tráfico con destino a Internet para IPv4 (`0.0.0.0/0`) se enruta a una puerta de enlace NAT (`nat-xxxxxxxxxx`) que está asociada a una subred pública. Esto significa que la subred es privada y puede obtener acceso a Internet a través de una puerta de enlace NAT.
**nota**  
Si la subred tiene un bloque de CIDR IPv6, la tabla de enrutamiento también debe direccionar el tráfico IPv6 entrante (`::/0`) a una puerta de enlace de Internet de solo salida (`eigw-xxxxxxxxxx`). Si su subred no tiene un bloque CIDR de IPv6, solo verá la ruta IPv4 (`0.0.0.0/0`).  
**Example tabla de enrutamiento de subred privada**    
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/routes-private.png)

1. Repita el paso anterior hasta que haya revisado cada tabla de enrutamiento asociada a una subred en su VPC y haya confirmado que tiene una tabla de enrutamiento con una puerta de enlace de Internet y una tabla de enrutamiento con una puerta de enlace NAT.

   Si no tiene dos tablas de enrutamiento, una con una ruta a una puerta de enlace de Internet y otra con una ruta a una puerta de enlace NAT, siga estos pasos para crear los recursos y las entradas de la tabla de enrutamiento que faltan.

### Crear una tabla de enrutamiento
<a name="create-route-table"></a>

Siga estos pasos para crear una tabla de enrutamiento y asociarla a una subred.

**Creación de una tabla de enrutamiento personalizada mediante la consola de Amazon VPC**

1. Abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. En el panel de navegación, elija **Tablas de enrutamiento**.

1. Elija **Create Route Table (Crear tabla de enrutamiento)**.

1. (Opcional) En **Name** (Etiqueta), escriba el nombre de la tabla de enrutamiento. 

1. En **VPC**, elija su VPC. 

1. (Opcional) Para agregar una etiqueta, elija **Add new tag** (Agregar etiqueta nueva) e ingrese la clave y el valor de la etiqueta.

1. Elija **Create Route Table (Crear tabla de enrutamiento)**.

1. En la pestaña **Subnet associations** (Asociaciones de subred), elija **Edit subnet associations** (Editar asociaciones de subred).  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/route-table-subnet.png)

1. Seleccione la casilla de verificación para la subred que desee asociar a la tabla de enrutamiento.

1. Seleccione **Save associations** (Guardar asociaciones).

### Cree un puerta de enlace de Internet
<a name="create-igw"></a>

Siga estos pasos para crear una puerta de enlace de Internet, adjuntarla a su VPC y agregarla a la tabla de enrutamiento de la subred pública.

**Para crear una puerta de enlace de Internet**

1. Abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. En el panel de navegación, elija **Internet Gateways** (Puertas de enlace de Internet).

1. Elija **Crear puerta de enlace de Internet**.

1. (Opcional) Ingrese un nombre para la puerta de enlace de Internet.

1. (Opcional) Para agregar una etiqueta, elija **Agregar etiqueta nueva** e ingrese la clave y el valor de la etiqueta.

1. Elija **Crear puerta de enlace de Internet**.

1. Elija **Asociar a una VPC** en el banner de la parte superior de la pantalla, seleccione una VPC disponible y, a continuación, elija **Conectar puerta de enlace de Internet**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/igw-attach-vpc.png)

1. Elija el **ID de la VPC**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/igw-subnet-1.png)

1. Elija el **ID de la VPC** para abrir la página de detalles de VPC.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/igw-your-vpcs.png)

1. Desplácese hacia abajo hasta la sección **Mapa de recursos** y, a continuación, elija una subred. Los detalles de la subred se mostrarán en una nueva pestaña.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/vpc-subnets.png)

1. Elija el enlace en **Tabla de enrutamiento**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/subnet-route-table.png)

1. Elija el **ID de la tabla de enrutamiento** para abrir la página de detalles de la tabla de enrutamiento.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/route-table-id.png)

1. En **Rutas**, elija **Editar rutas**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/edit-routes.png)

1. Seleccione **Agregar ruta** y, a continuación, introduzca `0.0.0.0/0` en el cuadro **Destino**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/create-route-1.png)

1. En **Objetivo**, seleccione **Puerta de enlace de Internet** y, a continuación, elija la puerta de enlace de Internet que creó anteriormente. Si la subred tiene un bloque de CIDR IPv6, también debe agregar una ruta `::/0` para la misma puerta de enlace de Internet.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/create-route-2.png)

1. Seleccione **Save changes (Guardar cambios)**.

### Creación de una gateway NAT
<a name="create-nat-gateway"></a>

Siga estos pasos para crear una puerta de enlace NAT, asociarla a una subred pública y, a continuación, agregarla a la tabla de enrutamiento de la subred privada.

**Creación de una puerta de enlace NAT y asociación a una subred pública**

1. En el panel de navegación, elija **Puertas de enlace de NAT**.

1. Elija **Crear una puerta de enlace de NAT**.

1. (Opcional) Ingrese un nombre para la puerta de enlace NAT.

1. En **Subred**, seleccione la subred pública de su VPC. (Una subred pública es una subred que tiene una ruta directa a una puerta de enlace de Internet en su tabla de enrutamiento).
**nota**  
Las puertas de enlace NAT están asociadas a una subred pública, pero la entrada de la tabla de enrutamiento se encuentra en la subred privada.

1. Para el **ID de asignación de IP elástica**, seleccione una dirección IP elástica o elija **Asignar IP elástica**.

1. Elija **Crear una puerta de enlace de NAT**.

**Adición de una ruta a la puerta de enlace NAT en la tabla de enrutamiento de la subred privada**

1. En el panel de navegación, elija **Subnets (Subredes)**.

1. Seleccione una subred privada en su VPC. (La subred privada es una subred que no dispone de una ruta a una puerta de enlace de Internet en su tabla de enrutamiento).

1. Elija el enlace en **Tabla de enrutamiento**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/subnet-route-table.png)

1. Elija el **ID de la tabla de enrutamiento** para abrir la página de detalles de la tabla de enrutamiento.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/route-table-id.png)

1. Desplácese hacia abajo y elija la pestaña **Rutas** y, a continuación, **Editar rutas**  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/route-table-edit-routes.png)

1. Seleccione **Agregar ruta** y, a continuación, introduzca `0.0.0.0/0` en el cuadro **Destino**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/create-route-1.png)

1. En **Destino**, seleccione **Puerta de enlace NAT** y, a continuación, elija la puerta de enlace NAT que creó anteriormente.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/create-route-nat.png)

1. Seleccione **Save changes (Guardar cambios)**.

### Creación de una puerta de enlace de Internet de solo salida (solo IPv6)
<a name="create-egress-gateway"></a>

Siga estos pasos para crear una puerta de enlace de Internet de solo salida y agregar la tabla de enrutamiento de su subred privada.

**Para crear una gateway de internet de solo salida**

1. En el panel de navegación, elija **Puertas de enlace de Internet de solo salida**.

1. Elija **Crear puerta de enlace de Internet de solo salida**.

1. (Opcional) Escriba un nombre.

1. Seleccione la VPC en la que desea crear el puerto de enlace a Internet de solo salida. 

1. Elija **Crear puerta de enlace de Internet de solo salida**.

1. Elija el enlace que aparece en el **ID de VPC asociada**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/eigw-details.png)

1. Seleccione el enlace en el **ID de la VPC** para abrir la página de detalles de VPC.

1. Desplácese hacia abajo hasta la sección **Mapa de recursos** y, a continuación, elija una subred privada. (La subred privada es una subred que no dispone de una ruta a una puerta de enlace de Internet en su tabla de enrutamiento). Los detalles de la subred se mostrarán en una nueva pestaña.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/vpc-subnet-private.png)

1. Elija el enlace en **Tabla de enrutamiento**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/private-subnet-route-table.png)

1. Elija el **ID de la tabla de enrutamiento** para abrir la página de detalles de la tabla de enrutamiento.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/route-table-id.png)

1. En **Rutas**, elija **Editar rutas**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/edit-routes.png)

1. Seleccione **Agregar ruta** y, a continuación, introduzca `::/0` en el cuadro **Destino**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/create-route-1.png)

1. En **Destino**, seleccione **Puerta de enlace de Internet de solo salida** y, a continuación, elija la puerta de enlace que creó anteriormente.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/eigw-route.png)

1. Seleccione **Save changes (Guardar cambios)**.

### Configuración de la función de Lambda
<a name="vpc-function-internet-create-existing"></a>

**Para configurar una VPC al crear una función**

1. Abra la página de [Functions](https://console.aws.amazon.com/lambda/home#/functions) (Funciones) en la consola de Lambda.

1. Seleccione **Creación de función**.

1. En **Basic information (Información básica)**, para **Function name (Nombre de función)**, escriba un nombre para la función.

1. Amplíe **Configuración avanzada**.

1. Seleccione **Habilitar VPC** y, a continuación, elija una VPC.

1. (Opcional) Para permitir el [tráfico IPv6 saliente](configuration-vpc.md#configuration-vpc-ipv6), seleccione **Permitir tráfico IPv6 para subredes de doble pila**.

1. En **Subredes**, seleccione todas las subredes privadas. Las subredes privadas pueden obtener acceso a Internet a través de una puerta de enlace NAT. La conexión de una función a una subred pública no le concede acceso a Internet.
**nota**  
Si seleccionó **Permitir tráfico IPv6 para subredes de pila doble**, todas las subredes seleccionadas deben tener un bloque de CIDR IPv4 y un bloque de CIDR IPv6.

1. En el caso de los **Grupos de seguridad**, seleccione un grupo de seguridad que permita el tráfico saliente.

1. Seleccione **Creación de función**.

Lambda crea automáticamente un rol de ejecución con la política [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) administrada por AWS. Los permisos de esta política solo son necesarios para crear interfaces de redes elásticas para la configuración de la VPC, no para invocar la función. Para aplicar permisos con privilegios mínimos, puede eliminar la política **AWSLambdaVPCAccessExecutionRole** de su rol de ejecución después de crear la función y la configuración de VPC. Para obtener más información, consulte [Permisos de IAM necesarios](configuration-vpc.md#configuration-vpc-permissions).

**Para configurar una VPC para una función existente**

Para agregar una configuración de VPC a una función existente, el rol de ejecución de la función debe tener [permiso para crear y administrar interfaces de redes elásticas](configuration-vpc.md#configuration-vpc-permissions). La política [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) administrada por AWS incluye los permisos requeridos. Para aplicar permisos con privilegios mínimos, puede eliminar la política **AWSLambdaVPCAccessExecutionRole** de su rol de ejecución después de crear la configuración de VPC.

1. Abra la [página de Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Elija una función.

1. Elija la pestaña **Configuración** y, a continuación, elija **VPC**.

1. En **VPC**, elija **Edit (Editar)**.

1. Seleccione la VPC.

1. (Opcional) Para permitir el [tráfico IPv6 saliente](configuration-vpc.md#configuration-vpc-ipv6), seleccione **Permitir tráfico IPv6 para subredes de doble pila**.

1. En **Subredes**, seleccione todas las subredes privadas. Las subredes privadas pueden obtener acceso a Internet a través de una puerta de enlace NAT. La conexión de una función a una subred pública no le concede acceso a Internet.
**nota**  
Si seleccionó **Permitir tráfico IPv6 para subredes de pila doble**, todas las subredes seleccionadas deben tener un bloque de CIDR IPv4 y un bloque de CIDR IPv6.

1. En el caso de los **Grupos de seguridad**, seleccione un grupo de seguridad que permita el tráfico saliente.

1. Seleccione **Save**.

### Prueba de la función
<a name="vpc-function-internet-test-existing"></a>

Use el siguiente código de ejemplo para confirmar que su función conectada a VPC puede llegar a la Internet pública. Si se ejecuta correctamente, el código devuelve un código de estado `200`. Si no funciona, la función agota el tiempo de espera.

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

1. En el panel **Código fuente** de la consola de Lambda, pegue el siguiente código en el archivo **index.mjs**. La función realiza una solicitud HTTP GET a un punto de conexión público y devuelve el código de respuesta HTTP para comprobar si la función tiene acceso a la Internet pública.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/code-source-nodejs.png)  
**Example — Solicitud HTTP con 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. En la sección **IMPLEMENTAR** elija **Implementar** para actualizar el código de la función:  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Elija la pestaña **Prueba**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/test-tab.png)

1. Seleccione **Probar**

1. La función devuelve un código de estado `200`. Esto significa que la función tiene acceso saliente a Internet.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/test-successful-200.png)

   Si la función no puede acceder a la Internet pública, aparecerá un mensaje de error como este:

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

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

1. En el panel **Código fuente** de la consola de Lambda, pegue el siguiente código en el archivo **lambda\$1function.py**. La función realiza una solicitud HTTP GET a un punto de conexión público y devuelve el código de respuesta HTTP para comprobar si la función tiene acceso a la Internet pública.  
![\[\]](http://docs.aws.amazon.com/es_es/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. En la sección **IMPLEMENTAR** elija **Implementar** para actualizar el código de la función:  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Elija la pestaña **Prueba**.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/test-tab.png)

1. Seleccione **Probar**

1. La función devuelve un código de estado `200`. Esto significa que la función tiene acceso saliente a Internet.  
![\[\]](http://docs.aws.amazon.com/es_es/lambda/latest/dg/images/test-successful-200.png)

   Si la función no puede acceder a la Internet pública, aparecerá un mensaje de error como este:

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

------