

# Habilitar o acesso à Internet para funções do Lambda conectadas à VPC
<a name="configuration-vpc-internet"></a>

Por padrão, as funções do Lambda são executadas em uma VPC gerenciada pelo Lambda que tem acesso à Internet. Para acessar recursos em uma VPC em sua conta, você pode adicionar uma configuração de VPC a uma função. A menos que a VPC tenha acesso à Internet, isso restringirá a função aos recursos dentro dessa VPC. Esta página explica como fornecer acesso à Internet às funções do Lambda conectadas à VPC.

## Ainda não tenho uma VPC
<a name="new-vpc"></a>

### Criar a VPC
<a name="create-vpc-internet"></a>

O **fluxo de trabalho Criar VPC** cria todos os recursos de VPC necessários para que uma função do Lambda acesse a Internet pública usando uma sub-rede privada, inclusive sub-redes, gateway NAT, gateway da Internet e entradas na tabela de rotas.

**Como criar a VPC**

1. Abra o console da Amazon VPC, em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel, escolha **Criar VPC**.

1. Em **Resources to create (Recursos a serem criados)**, escolha **VPC and more (VPC e mais)**.

1. **Configurar a VPC**

   1. Em **Name tag auto-generation** (Geração automática de tags de nome), insira um nome para a VPC.

   1. Em **Bloco CIDR IPv4**, é possível manter a sugestão padrão ou inserir o bloco CIDR exigido por sua aplicação ou rede.

   1. Se a sua aplicação se comunica usando endereços IPv6, escolha **Bloco CIDR IPv6**, **Bloco CIDR IPv6 fornecido pela Amazon**.

1. **Configurar as sub-redes**

   1. Em **Número de zonas de disponibilidade**, escolha **2**. Recomendamos pelo menos duas AZs para alta disponibilidade.

   1. Em **Number of public subnets** (Número de sub-redes públicas), escolha **2**.

   1. Em **Number of private subnets** (Número de sub-redes privadas), escolha **2**.

   1. É possível manter o bloco CIDR padrão para a sub-rede pública ou, alternativamente, expandir **Personalizar blocos CIDR da sub-rede** e inserir um bloco CIDR. Para obter mais informações, consulte [Blocos CIDR de sub-rede](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html).

1. Em **Gateways NAT**, escolha **1 por zona de disponibilidade** para melhorar a resiliência.

1. Em **Gateway da Internet somente de saída**, escolha **Sim** se tiver optado por incluir um bloco CIDR IPv6.

1. Em **Endpoints da VPC**, mantenha o valor padrão (**Gateway do S3**). Não há custo para essa opção. Para obter mais informações, consulte [Tipos de endpoints da VPC para o Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3).

1. Em **Opções de DNS**, mantenha as configurações padrão.

1. Escolha **Criar VPC**.

### Configurar a função do Lambda
<a name="vpc-function-internet-create"></a>

**Como configurar uma VPC ao criar uma função**

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Escolha a opção **Criar função**.

1. Em **Basic information (Informações básicas)**, para **Function name (Nome da função)**, insira um nome para a função.

1. Expanda **Advanced settings (Configurações avançadas)**.

1. Selecione **Habilitar VPC** e, em seguida, escolha uma VPC.

1. (Opcional) Para permitir [tráfego IPv6 de saída](configuration-vpc.md#configuration-vpc-ipv6), selecione **Permitir tráfego IPv6 para sub-redes de pilha dupla**.

1. Em **Sub-redes**, selecione todas as sub-redes privadas. As sub-redes privadas podem acessar a Internet por meio do gateway NAT. Conectar uma função a uma sub-rede pública não permite que ela tenha acesso à Internet.
**nota**  
Se você selecionou **Permitir tráfego IPv6 para sub-redes de pilha dupla**, todas as sub-redes selecionadas deverão ter um bloco CIDR IPv4 e um bloco CIDR IPv6.

1. Em **Grupos de segurança**, selecione um grupo de segurança que permita tráfego de saída.

1. Escolha a opção **Criar função**.

O Lambda criará automaticamente um perfil de execução com a política [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) gerenciada pela AWS. As permissões nessa política são necessárias apenas para criar interfaces de rede elástica para a configuração da VPC, mas não para invocar a função. Para aplicar permissões com privilégios mínimos, você pode remover a política **AWSLambdaVPCAccessExecutionRole** do seu perfil de execução após criar a função e a configuração da VPC. Para obter mais informações, consulte [Permissões obrigatórias do IAM](configuration-vpc.md#configuration-vpc-permissions).

**Como configurar uma VPC para uma função existente**

Para adicionar uma configuração de VPC a uma função existente, o perfil de execução da função precisa ter [permissão para criar e gerenciar interfaces de rede elástica](configuration-vpc.md#configuration-vpc-permissions). A política [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) gerenciada pela AWS inclui as permissões necessárias. Para aplicar permissões com privilégios mínimos, você pode remover a política **AWSLambdaVPCAccessExecutionRole** do seu perfil de execução após criar a configuração da VPC.

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Escolha uma função.

1. Escolha a guia **Configuração** e depois **VPC**.

1. Em **VPC**, selecione **Edit (Editar)**.

1. Selecionar a VPC.

1. (Opcional) Para permitir [tráfego IPv6 de saída](configuration-vpc.md#configuration-vpc-ipv6), selecione **Permitir tráfego IPv6 para sub-redes de pilha dupla**.

1. Em **Sub-redes**, selecione todas as sub-redes privadas. As sub-redes privadas podem acessar a Internet por meio do gateway NAT. Conectar uma função a uma sub-rede pública não permite que ela tenha acesso à Internet.
**nota**  
Se você selecionou **Permitir tráfego IPv6 para sub-redes de pilha dupla**, todas as sub-redes selecionadas deverão ter um bloco CIDR IPv4 e um bloco CIDR IPv6.

1. Em **Grupos de segurança**, selecione um grupo de segurança que permita tráfego de saída.

1. Escolha **Salvar**.

### Testar a função
<a name="vpc-function-internet-test"></a>

Use o seguinte exemplo de código para confirmar se a sua função conectada à VPC pode acessar a Internet pública. Se for bem-sucedido, o código retornará um código de status `200`. Se não for bem-sucedido, o tempo-limite da função esgotará.

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

1. No painel **Código-fonte** no console do Lambda, cole o código a seguir no arquivo **index.mjs**. A função faz uma solicitação HTTP GET para um endpoint público e retorna o código de resposta HTTP para testar se a função tem acesso à Internet pública.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/code-source-nodejs.png)  
**Example – Solicitação HTTP com 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. Na seção **DEPLOY**, escolha **Implantar** para atualizar o código da função:  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Selecione a guia **Testar**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/test-tab.png)

1. Escolha **Testar**.

1. A função retorna um código de status `200`. Isso significa que a função tem acesso de saída à Internet.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/test-successful-200.png)

   Se a função não conseguir acessar a Internet pública, você receberá uma mensagem de erro como esta:

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

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

1. No painel **Código-fonte** no console do Lambda, cole o código a seguir no arquivo **lambda\$1function.py**. A função faz uma solicitação HTTP GET para um endpoint público e retorna o código de resposta HTTP para testar se a função tem acesso à Internet pública.  
![\[\]](http://docs.aws.amazon.com/pt_br/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. Na seção **DEPLOY**, escolha **Implantar** para atualizar o código da função:  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Selecione a guia **Testar**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/test-tab.png)

1. Escolha **Testar**.

1. A função retorna um código de status `200`. Isso significa que a função tem acesso de saída à Internet.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/test-successful-200.png)

   Se a função não conseguir acessar a Internet pública, você receberá uma mensagem de erro como esta:

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

------

## Já tenho uma VPC
<a name="existing-vpc"></a>

Se você já tiver uma VPC, mas precisar configurar o acesso público à Internet para uma função do Lambda, siga estas etapas. Este procedimento pressupõe que a VPC tenha pelo menos duas sub-redes. Se você não tiver duas sub-redes, consulte [Criar uma sub-rede](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html) no *Guia do usuário da Amazon VPC*.

### Verifique a configuração da tabela de rotas
<a name="vpc-internet-routes"></a>

1. Abra o console da Amazon VPC, em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Escolha o **ID da VPC**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/vpc-id.png)

1. Role para baixo até a seção **Mapa de recursos**. Anote os mapeamentos da tabela de rotas. Abra cada tabela de rotas mapeada para uma sub-rede.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/route-table-associations.png)

1. Role para baixo até a guia **Rotas**. Revise as rotas para determinar se a VPC tem ambas as tabelas de rotas a seguir. É necessário atender a cada um desses requisitos com uma tabela de rotas separada.
   + O tráfego vinculado à Internet (`0.0.0.0/0` para IPv4, `::/0` para IPv6) é roteado para um gateway da Internet (`igw-xxxxxxxxxx`). Isso significa que a sub-rede associada à tabela de rotas é uma sub-rede pública.
**nota**  
Se sua sub-rede não tiver um bloco CIDR IPv6, você verá somente a rota IPv4 (`0.0.0.0/0`).  
**Example tabela de rotas de sub-rede pública**    
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/routes-public.png)
   + O tráfego vinculado à Internet para IPv4 (`0.0.0.0/0`) é roteado para um gateway NAT (`nat-xxxxxxxxxx`) associado a uma sub-rede pública. Isso significa que a sub-rede é uma sub-rede privada capaz de acessar a Internet por meio do gateway NAT.
**nota**  
Se a sub-rede tiver um bloco CIDR IPv6, a tabela de rotas também deverá rotear o tráfego IPv6 direcionado à Internet (`::/0`) para um gateway da Internet somente de saída (`eigw-xxxxxxxxxx`). Se sua sub-rede não tiver um bloco CIDR IPv6, você verá somente a rota IPv4 (`0.0.0.0/0`).  
**Example tabela de rotas de sub-rede privada**    
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/routes-private.png)

1. Repita a etapa anterior até ter revisado cada tabela de rotas associada a uma sub-rede em sua VPC e confirmar que tem uma tabela de rotas com um gateway da Internet e uma tabela de rotas com um gateway NAT.

   Se você não tiver duas tabelas de rotas, uma com uma rota para um gateway da Internet e outra com uma rota para um gateway NAT, siga estas etapas a fim de criar os recursos e as entradas da tabela de rotas ausentes.

### Crie uma tabela de rotas
<a name="create-route-table"></a>

Siga estas etapas para criar uma tabela de rotas e associá-la a uma sub-rede.

**Para criar uma tabela de rotas personalizada usando o console da Amazon VPC**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação, escolha **Route tables**.

1. Escolha **Create Route Table (Criar tabela de rotas)**.

1. (Opcional) Em **Name** (Nome), insira um nome para a tabela de rotas. 

1. Em **VPC**, escolha sua VPC. 

1. (Opcional) Para adicionar uma etiqueta, escolha **Add new tag** (Adicionar nova etiqueta) e insira a chave e o valor da etiqueta.

1. Escolha **Create Route Table (Criar tabela de rotas)**.

1. Na guia **Subnet Associations** (Associações da sub-rede) selecione **Edit subnet associations** (Editar associações da sub-rede).  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/route-table-subnet.png)

1. Marque a caixa de seleção para a sub-rede associada à tabela de rotas.

1. Selecione **Salvar associações**.

### Criar um gateway da Internet
<a name="create-igw"></a>

Siga estas etapas para criar um gateway da Internet, anexá-lo à sua VPC e adicioná-lo à tabela de rotas da sua sub-rede pública.

**Para criar um gateway da Internet**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação, escolha **Internet gateways** (Gateways da Internet).

1. Escolha **Criar gateway da Internet**.

1. (Opcional) Insira um nome para o gateway da Internet.

1. (Opcional) Para adicionar uma tag, escolha **Add new tag** (Adicionar nova tag) e insira a chave e o valor da tag.

1. Escolha **Criar gateway da Internet**.

1. Escolha **Anexar a uma VPC** no banner na parte superior da tela, selecione uma VPC disponível e escolha **Anexar gateway da Internet**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/igw-attach-vpc.png)

1. Escolha o **ID da VPC**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/igw-subnet-1.png)

1. Escolha o **ID da VPC** novamente para abrir a página de detalhes da VPC.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/igw-your-vpcs.png)

1. Role para baixo até a seção **Mapa de recursos** e escolha uma sub-rede. Os detalhes sobre a sub-rede são exibidos em uma nova guia.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/vpc-subnets.png)

1. Escolha o link em **Tabela de rotas**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/subnet-route-table.png)

1. Escolha o **ID da tabela de rotas** para abrir a respectiva página de detalhes da tabela de rotas.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/route-table-id.png)

1. Em **Rotas**, escolha **Editar rotas**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/edit-routes.png)

1. Escolha **Adicionar rota** e, em seguida, insira `0.0.0.0/0` na caixa **Destino**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/create-route-1.png)

1. Em **Destino**, selecione **Gateway da Internet** e, em seguida, escolha o gateway da Internet que você criou anteriormente. Se a sub-rede tiver um bloco CIDR IPv6, você também deverá adicionar uma rota para `::/0` ao mesmo gateway da Internet.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/create-route-2.png)

1. Escolha **Salvar alterações**.

### Criar um gateway NAT
<a name="create-nat-gateway"></a>

Siga estas etapas para criar um gateway NAT, associá-lo a uma sub-rede pública e adicioná-lo à tabela de rotas da sua sub-rede privada.

**Para criar um gateway NAT e associá-lo a uma sub-rede pública**

1. No painel de navegação, escolha **Gateways NAT**.

1. Escolha **Criar um gateway NAT**.

1. (Opcional) Insira um nome para o gateway NAT.

1. Em **Sub-rede**, selecione uma sub-rede pública na sua VPC. (Uma sub-rede pública é uma sub-rede que tem uma rota direta para um gateway da Internet em sua tabela de rotas.)
**nota**  
Os gateways NAT estão associados a uma sub-rede pública, mas a entrada da tabela de rotas está na sub-rede privada.

1. Em **ID de alocação de IP elástico**, selecione um endereço IP elástico ou escolha **Alocar IP elástico**.

1. Escolha **Criar um gateway NAT**.

**Para adicionar uma rota ao gateway NAT na tabela de rotas da sub-rede privada**

1. No painel de navegação, escolha **Sub-redes**.

1. Selecione uma sub-rede privada em sua VPC. (Uma sub-rede privada é uma sub-rede que não tem uma rota direta para um gateway da Internet em sua tabela de rotas.)

1. Escolha o link em **Tabela de rotas**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/subnet-route-table.png)

1. Escolha o **ID da tabela de rotas** para abrir a respectiva página de detalhes da tabela de rotas.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/route-table-id.png)

1. Role para baixo e escolha a guia **Rotas** e **Editar rotas**  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/route-table-edit-routes.png)

1. Escolha **Adicionar rota** e, em seguida, insira `0.0.0.0/0` na caixa **Destino**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/create-route-1.png)

1. Em **Destino**, selecione **Gateway NAT** e, em seguida, escolha o gateway NAT que você criou anteriormente.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/create-route-nat.png)

1. Escolha **Salvar alterações**.

### Criar um gateway da Internet somente de saída (somente IPv6)
<a name="create-egress-gateway"></a>

Siga estas etapas para criar um gateway da Internet somente de saída e adicioná-lo à tabela de rotas da sua sub-rede privada.

**Como criar um gateway da Internet somente de saída para a VPC**

1. No painel de navegação, escolha **Gateways da Internet somente de saída**.

1. Escolha **Criar um Gateway da Internet somente de saída**.

1. (Opcional) Insira um nome.

1. Selecione a VPC para a qual será criado um gateway de Internet somente de saída. 

1. Escolha **Criar um Gateway da Internet somente de saída**.

1. Escolha o link em **ID da VPC anexada**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/eigw-details.png)

1. Escolha o link em **ID da VPC** para abrir a página de detalhes da VPC.

1. Role para baixo até a seção **Mapa de recursos** e escolha uma sub-rede privada. (Uma sub-rede privada é uma sub-rede que não tem uma rota direta para um gateway da Internet em sua tabela de rotas.) Os detalhes sobre a sub-rede são exibidos em uma nova guia.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/vpc-subnet-private.png)

1. Escolha o link em **Tabela de rotas**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/private-subnet-route-table.png)

1. Escolha o **ID da tabela de rotas** para abrir a respectiva página de detalhes da tabela de rotas.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/route-table-id.png)

1. Em **Rotas**, escolha **Editar rotas**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/edit-routes.png)

1. Escolha **Adicionar rota** e, em seguida, insira `::/0` na caixa **Destino**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/create-route-1.png)

1. Em **Destino**, selecione **Gateway da Internet somente de saída** e, em seguida, escolha o gateway que você criou anteriormente.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/eigw-route.png)

1. Escolha **Salvar alterações**.

### Configurar a função do Lambda
<a name="vpc-function-internet-create-existing"></a>

**Como configurar uma VPC ao criar uma função**

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Escolha a opção **Criar função**.

1. Em **Basic information (Informações básicas)**, para **Function name (Nome da função)**, insira um nome para a função.

1. Expanda **Advanced settings (Configurações avançadas)**.

1. Selecione **Habilitar VPC** e, em seguida, escolha uma VPC.

1. (Opcional) Para permitir [tráfego IPv6 de saída](configuration-vpc.md#configuration-vpc-ipv6), selecione **Permitir tráfego IPv6 para sub-redes de pilha dupla**.

1. Em **Sub-redes**, selecione todas as sub-redes privadas. As sub-redes privadas podem acessar a Internet por meio do gateway NAT. Conectar uma função a uma sub-rede pública não permite que ela tenha acesso à Internet.
**nota**  
Se você selecionou **Permitir tráfego IPv6 para sub-redes de pilha dupla**, todas as sub-redes selecionadas deverão ter um bloco CIDR IPv4 e um bloco CIDR IPv6.

1. Em **Grupos de segurança**, selecione um grupo de segurança que permita tráfego de saída.

1. Escolha a opção **Criar função**.

O Lambda criará automaticamente um perfil de execução com a política [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) gerenciada pela AWS. As permissões nessa política são necessárias apenas para criar interfaces de rede elástica para a configuração da VPC, mas não para invocar a função. Para aplicar permissões com privilégios mínimos, você pode remover a política **AWSLambdaVPCAccessExecutionRole** do seu perfil de execução após criar a função e a configuração da VPC. Para obter mais informações, consulte [Permissões obrigatórias do IAM](configuration-vpc.md#configuration-vpc-permissions).

**Como configurar uma VPC para uma função existente**

Para adicionar uma configuração de VPC a uma função existente, o perfil de execução da função precisa ter [permissão para criar e gerenciar interfaces de rede elástica](configuration-vpc.md#configuration-vpc-permissions). A política [AWSLambdaVPCAccessExecutionRole](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaVPCAccessExecutionRole.html) gerenciada pela AWS inclui as permissões necessárias. Para aplicar permissões com privilégios mínimos, você pode remover a política **AWSLambdaVPCAccessExecutionRole** do seu perfil de execução após criar a configuração da VPC.

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Escolha uma função.

1. Escolha a guia **Configuração** e depois **VPC**.

1. Em **VPC**, selecione **Edit (Editar)**.

1. Selecionar a VPC.

1. (Opcional) Para permitir [tráfego IPv6 de saída](configuration-vpc.md#configuration-vpc-ipv6), selecione **Permitir tráfego IPv6 para sub-redes de pilha dupla**.

1. Em **Sub-redes**, selecione todas as sub-redes privadas. As sub-redes privadas podem acessar a Internet por meio do gateway NAT. Conectar uma função a uma sub-rede pública não permite que ela tenha acesso à Internet.
**nota**  
Se você selecionou **Permitir tráfego IPv6 para sub-redes de pilha dupla**, todas as sub-redes selecionadas deverão ter um bloco CIDR IPv4 e um bloco CIDR IPv6.

1. Em **Grupos de segurança**, selecione um grupo de segurança que permita tráfego de saída.

1. Escolha **Salvar**.

### Testar a função
<a name="vpc-function-internet-test-existing"></a>

Use o seguinte exemplo de código para confirmar se a sua função conectada à VPC pode acessar a Internet pública. Se for bem-sucedido, o código retornará um código de status `200`. Se não for bem-sucedido, o tempo-limite da função esgotará.

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

1. No painel **Código-fonte** no console do Lambda, cole o código a seguir no arquivo **index.mjs**. A função faz uma solicitação HTTP GET para um endpoint público e retorna o código de resposta HTTP para testar se a função tem acesso à Internet pública.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/code-source-nodejs.png)  
**Example – Solicitação HTTP com 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. Na seção **DEPLOY**, escolha **Implantar** para atualizar o código da função:  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Selecione a guia **Testar**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/test-tab.png)

1. Escolha **Testar**.

1. A função retorna um código de status `200`. Isso significa que a função tem acesso de saída à Internet.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/test-successful-200.png)

   Se a função não conseguir acessar a Internet pública, você receberá uma mensagem de erro como esta:

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

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

1. No painel **Código-fonte** no console do Lambda, cole o código a seguir no arquivo **lambda\$1function.py**. A função faz uma solicitação HTTP GET para um endpoint público e retorna o código de resposta HTTP para testar se a função tem acesso à Internet pública.  
![\[\]](http://docs.aws.amazon.com/pt_br/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. Na seção **DEPLOY**, escolha **Implantar** para atualizar o código da função:  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/getting-started-tutorial/deploy-console.png)

1. Selecione a guia **Testar**.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/test-tab.png)

1. Escolha **Testar**.

1. A função retorna um código de status `200`. Isso significa que a função tem acesso de saída à Internet.  
![\[\]](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/test-successful-200.png)

   Se a função não conseguir acessar a Internet pública, você receberá uma mensagem de erro como esta:

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

------