Aws Lambda — IP Fixo no Tráfego de Saída
Passo a passo para atribuir um IP público fixo a uma função Lambda na AWS

Olá Gente!
Lambda é um dos serviços que mais utilizo na AWS, me permite criar micro-serviços para diversas necessidades.
Porem, a alguns dias me surgiu uma necessidade diferenciada.
Eu precisava buscar dados de uma API, porem, esta API permite apenas que IPs previamente liberados acessem a API.
Então fui testar qual o IP Público que é utilizado quando a função lambda faz uma request.
Para isto, crie uma função em Nodejs, que busca o IP Público:
Como já era óbvio, não existe um IP Fixo no tráfego da função, então, cada teste me retornava um IP diferente:


Vamos Resolver Isto?
Nas configurações das funções Lambda, podemos configurar para que a função utilize uma rede VPC própria, e nesta rede, podemos configurar o tráfego de saída para sair sempre do mesmo IP.
A primeira coisa que precisamos fazer é acessar as configurações do serviço VPC:

Aqui iremos criar uma VPC que quando o tráfego da rede privada for para a rede pública, passe por um Gateway NAT onde um (ou diversos) IPs serão fixados.
Criando VPC
Em “Suas VPCs” clique em “Criar VPC”:

Será aberto uma janela para configurarmos a VPC e todos seus recursos, porem, são necessários customizar apenas alguns campos, os outros, que não irei descrever abaixo, não devem ser alterados.
Em “Recursos a serem criados” selecione “VPC e muito mais”, isto ira criar a VPC e todos os recursos necessários:

Em “Geração automática da etiqueta de nome” preencha um nome para identificar sua VPC:

Em “Número de zonas de disponibilidade” selecione “1” (Aqui você pode selecionar mais para criar uma redundância):

Em “Gateways NAT” selecione “1 por AZ”:

Em “Endpoints da VPC” selecione “Nenhuma”:

Agora clique em “Criar VPC”:

Será exibido uma janela exibindo o progresso da criação, podem levar diversos minutos para finalizar a criação da VPC:

Após a VPC ser criada, será exibido “Êxito”:

Identificando IP Público
No lado esquerdo, selecione a VPC que criamos:

Clique em “Gateways NAT”:

Será exibido apenas um Gateway com o sufixo “Public”, clique nele:

O IP público será exibido no campo “Endereço IPv4 público primário”:

Neste caso, o IP Público é:
54.165.76.118
Pronto! Agora temos nossa função VPC com IP Público Fixo!
Configurando Função Lambda para ter Acesso as VPC
Em sua função lambda, clique em “Configurações”:

Clique em “Permissão”:

Clique no nome da função, para ter acesso a edição das permissões:

Clique em “Adicionar Permissões” e em seguida em “Anexar Políticas”:

Procure a permissão “AWSLambdaVPCAccessExecutionRole” e marque esta permissão na listagem:

Clique em “Adicionar Permissões”:

Pronto! Agora atribuímos a permissão de acesso a VPC em nossa Função Lambda:

Vinculando VPC em nossa Função Lambda
Em sua Função Lambda, clique em “Configurações” e após em “VPC”:

Clique em “Editar”:

Selecione a VPC que criamos:

Em “Sub-redes” selecione a sub-rede que possuem o nome “private”:

Em “Grupos de Segurança” selecione o único grupo disponível em sua nova VPC:

Em seguida, clique em “Salvar”:

Agora é necessário aguardar a Função atualizar, o que pode levar alguns minutos:

Pronto! Agora nossa Função Lambda esta conectada a nossa nova rede VPC:

Testando
Agora iremos executar o teste algumas vezes, para confirmar o IP Público:

E com isto, confirmamos que o IP público esta fixado em:
54.165.76.118
Terminamos por hoje, entusiastas da Lambda! 👩💻
Até a próxima execução da função! 🌈