

# Desenvolver funções do Lambda localmente com o VS Code
<a name="foundation-iac-local-development"></a>

Você pode mover suas funções do Lambda do console Lambda para o Visual Studio Code, que fornece um ambiente de desenvolvimento completo e permite que você use outras opções de desenvolvimento local, como AWS SAM e AWS CDK.

## Principais benefícios do desenvolvimento local
<a name="lambda-functions-vscode-benefits"></a>

Embora o console do Lambda forneça uma maneira rápida de editar e testar funções, o desenvolvimento local oferece recursos mais avançados:
+ **Atributos avançados do IDE**: ferramentas de depuração, preenchimento de código e refatoração
+ **Desenvolvimento off-line**: trabalhe e teste as mudanças localmente antes da implantação na nuvem
+ **Infraestrutura como integração de código**: uso contínuo com AWS SAM, AWS CDK e Infrastructure Composer
+ **Gerenciamento de dependências**: controle total sobre as dependências de funções

## Pré-requisitos
<a name="lambda-functions-vscode-prerequisites"></a>

Antes de desenvolver as funções do Lambda localmente no VS Code, você deve ter:
+ **VS Code**: para obter instruções de instalação, consulte [Baixar o VS Code](https://code.visualstudio.com/download).
+ **AWS Toolkit for Visual Studio Code**: Para obter as instruções de instalação, consulte [Como configurar o AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html). Para obter uma visão geral, consulte [AWS Toolkit for Visual Studio Code](https://aws.amazon.com/visualstudiocode/).
+ **Credenciais da AWS**: para obter informações sobre como configurar as credenciais, consulte [Como configurar suas credenciais da AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html).
+ **AWS SAM CLI**: Para obter instruções de instalação, consulte [Como instalar a CLI no AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html).
+ **Docker instalado (opcional, mas obrigatório para testes locais)**: para obter instruções de instalação, consulte [Baixar o Docker](https://docs.docker.com/get-docker/).

**nota**  
Se você já tiver uma conta da AWS e um perfil configurados localmente, certifique-se de que a política gerenciada do AdministratorAccess seja adicionada ao seu perfil configurado da AWS.

## Autenticação e controle de acesso
<a name="lambda-functions-vscode-authentication-and-access-control"></a>

Para desenvolver as funções do Lambda localmente, você precisa de credenciais da AWS para acessar e gerenciar os recursos da AWS com segurança em seu nome, assim como fariam na nuvem. O kit de ferramentas da AWS para VS Code é compatível com os seguintes métodos de autenticação:

O kit de ferramentas da AWS para VS Code é compatível com os seguintes métodos de autenticação:
+ Credenciais de longo prazo para usuários do IAM
+ Credenciais temporárias de funções assumidas
+ Federação de identidades
+ Credenciais da AWS de usuário-raiz da conta (não recomendado)

Esta seção orienta você na obtenção e configuração dessas credenciais usando as credenciais de longo prazo do usuário do IAM.

### Obter credenciais do IAM
<a name="lambda-functions-vscode-iam-credentials"></a>

Se você já tiver um usuário do IAM com chaves de acesso, tenha o ID da chave de acesso e a chave de acesso secreta prontos para a próxima seção. Se você não tiver essas chaves, siga estas etapas para criá-las:

**nota**  
Você deve usar o ID da chave de acesso e a chave de acesso secreta em conjunto para autenticar suas solicitações.

Para criar um usuário do IAM e chaves de acesso:

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

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

1. Selecione **Criar usuário**.

1. Em **Nome do usuário**, insira um nome e clique em **Avançar**.

1. Em **Definir permissões**, selecione **Anexar políticas existentes**.

1. Selecione **AdministratorAccess** e clique em **Avançar**.

1. Selecione **Criar usuário**.

1. No banner de sucesso, clique em **Exibir usuário**.

1. Selecione **Create access key (Criar chave de acesso)**.

1. Em **Caso de uso**, selecione **Código local**.

1. Marque a caixa de seleção de confirmação e clique em **Avançar**.

1. (Opcional) Insira um valor para a tag de descrição.

1. Selecione **Create access key (Criar chave de acesso)**.

1. Copie sua chave de acesso e chave de acesso secreta imediatamente. **Você não poderá acessar a chave de acesso secreta novamente após sair desta página.**

**Importante**  
Nunca compartilhe sua chave secreta nem a comprometa com o controle de versão. Armazene essas chaves com segurança e exclua-as quando não forem mais necessárias.

**nota**  
Para obter mais informações, consulte [ Criar um usuário do IAM na sua conta da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) e [Gerenciar chaves de acesso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) no *Guia do usuário do IAM*.

### Configurar credenciais da AWS usando o AWS Toolkit
<a name="lambda-functions-vscode-configure-credentials-vscode"></a>

A tabela a seguir resume o processo de configuração de credenciais que você concluirá no procedimento a seguir.


| O que fazer | Por quê? | 
| --- | --- | 
| Abra o painel de login | Iniciar a autenticação | 
| Use a Paleta de Comandos, pesquise Adicionar uma nova conexão da AWS | Acesse a UI de login | 
| Escolha a credencial do IAM | Use suas chaves de acesso para acesso programático | 
| Digite o nome do perfil, chave de acesso, chave secreta | Forneça as credenciais para conexão | 
| Veja a atualizar o AWS Explorer | Confirme que você está conectado | 

Conclua as etapas a seguir para autenticar-se em sua conta da AWS:

1. Abra o painel de login no VS Code:

   1. Para iniciar o processo de autenticação, clique no ícone da AWS no painel de navegação esquerdo ou abra a Paleta de Comandos (Cmd\+Shift\+P no Mac ou Ctrl\+Shift\+P no Windows/Linux) e pesquise e selecione **Adicionar uma nova conexão da AWS**.

1. No painel de login, escolha **Credenciais do IAM** e clique em **Continuar**.
**nota**  
Para continuar, você precisará permitir que as extensões do IDE da AWS para VS Code acessem seus dados.

1. Insira seu nome de perfil, ID da chave de acesso e chave de acesso secreta e clique em **Continuar**.

1. Verifique a conexão ao marcar o AWS Explorer no VS Code para serviços e recursos da AWS.

Para obter informações sobre como configurar a autenticação com credenciais de longo prazo, consulte [Como usar credenciais de longo prazo para autenticar SDKs e ferramentas da AWS](https://docs.aws.amazon.com/sdkref/latest/guide/access-iam-users.html).

Para obter informações sobre como configurar a autenticação, consulte [credenciais do AWS IAM](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html) no Guia do usuário do AWS Toolkit for Visual Studio Code.

## Mova do console para o desenvolvimento local
<a name="moving-from-console-to-local-development"></a>

**nota**  
Se você fez alterações no console, verifique se não há nenhuma alteração não implantada antes de fazer a transição para o desenvolvimento local.

Para mover uma função do Lambda do console do Lambda para o VS Code, conclua as etapas a seguir:

1. Abra o [console do lambda](https://console.aws.amazon.com/lambda).

1. Escolha o nome da sua função.

1. Selecione a guia **Fonte do código**.

1. Escolha **Abrir no Visual Studio Code**.
**nota**  
O botão **Abrir no Visual Studio Code** só está disponível no AWSToolkit versão **3.69.0** e posterior. Se você tiver uma versão anterior do AWS Toolkit instalada, poderá ver uma mensagem `Cannot open the handler` no VS Code. Para resolver isso, atualize seu AWS Toolkit para a versão mais recente.

1. Quando solicitado, permita que seu navegador abra o VS Code.

Quando você abre sua função no VS Code, o Lambda cria um projeto local com seu código de função em um local temporário projetado para testes e implantação rápidos. Isso inclui o código da função, dependências e uma estrutura básica do projeto que você pode usar para o desenvolvimento local.

Para obter detalhes sobre o uso da AWS no VS Code, consulte o *[Guia do usuário do AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html)*.

## Trabalhe com funções localmente
<a name="working-with-functions-locally"></a>

Depois de abrir sua função no VS Code, siga estas etapas para acessar e gerenciar suas funções:

1. Clique no ícone da AWS na barra lateral para abrir o AWS Explorer:  
![Ícone do AWS Toolkit na barra lateral do VS Code](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/console-to-ide-awsIcon.png)

1. No AWS Explorer, selecione a região com sua função do Lambda:  
![O AWS Explorer mostra a seleção da região](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/console-to-ide-lambdaTreeView.png)

1. Na região selecionada, expanda a seção Lambda para visualizar e gerenciar suas funções:  
![Funções do Lambda com ícones de ação para implantação, invocação e muito mais](http://docs.aws.amazon.com/pt_br/lambda/latest/dg/images/console-to-ide-lambdaActions.png)

Com sua função aberta no VS Code, você pode:
+ Editar o código da função com suporte completo ao idioma e preenchimento de código.
+ Use a [integração do LocalStack no VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/lambda-localstack.html) para testar funções do Lambda que fazem chamadas de API para outros serviços da Serviços da AWS durante a execução, como ler tabelas do DynamoDB ou gravar em buckets do Amazon S3. LocalStack é um emulador de serviço em nuvem que fornece um ambiente de desenvolvimento local completo para testar integrações de serviços. Também é possível [usar AWS SAMCLI para testar sua função em um contêiner local](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-invoke.html). Se sua função fizer chamadas de API para outros Serviços da AWS, essas chamadas alcançarão recursos reais do AWS, não emulados.
+ Depurar sua função com pontos de interrupção e inspeção de variáveis. Para obter mais informações, consulte [Execução e depuração de funções do Lambda diretamente do código](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) no *Guia do usuário AWS Toolkit for Visual Studio Code*.
+ Implantar sua função atualizada novamente para a AWS usando o ícone da nuvem.
+ Instalar e gerenciar dependências para sua função.

Para obter mais informações, consulte [Como trabalhar com as funções do AWS Lambda](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/building-lambda.html) no Guia do usuário do AWS Toolkit for Visual Studio Code.

## Converta sua função em um modelo de AWS SAM e use as ferramentas de IaC
<a name="integrating-with-infrastructure-as-code"></a>

No VS Code, você pode converter sua função do Lambda em um modelo de AWS SAM escolhendo o ícone **Converter em aplicação do AWS SAM** ao lado de sua função Lambda. Será solicitado que você selecione um local para o projeto do AWS SAM. Depois de selecionada, sua função do Lambda será convertida em um arquivo `template.yaml` salvo em seu novo projeto do AWS SAM.

Com sua função convertida em um modelo do AWS SAM, você pode:
+ Controlar o versionamento de sua infraestrutura
+ Automatizar implantações
+ Depurar funções remotamente
+ Adicionar mais recursos da AWS para sua aplicação
+ Mantenha ambientes consistentes em todo o seu ciclo de vida de desenvolvimento
+ Use o Compositor de Infraestrutura para editar visualmente seu modelo do AWS SAM

Para obter mais informações sobre o uso de ferramentas de IaC, consulte os seguintes guias:
+ [O Guia do desenvolvedor do AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html)
+ [O Guia do desenvolvedor do AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)
+ [Guia do desenvolvedor do Compositor de Infraestrutura](https://docs.aws.amazon.com/application-composer/latest/dg/what-is-composer.html)
+ [O Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

Essas ferramentas fornecem recursos adicionais para definir, testar e implantar suas aplicações com tecnologia sem servidor.

## Próximas etapas
<a name="next-steps"></a>

Para saber mais sobre como trabalhar com funções do Lambda no VS Code, consulte os seguintes recursos:
+ [Como trabalhar com funções do AWS Lambda](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/building-lambda.html) no Guia do usuário do AWS Toolkit para VS Code
+ [Como trabalhar com aplicações com tecnologia sem servidor](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html) no Guia do usuário do AWS Toolkit para VS Code
+ [Infraestrutura como código](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac.html) no Guia do desenvolvedor do Lambda