O blog da AWS

Apresentando uma experiência aprimorada de IDE local para desenvolvedores do AWS Lambda

Escrito por Julian Wood, Developer Advocate Sênior na Amazon Web Services (AWS).

O AWS Lambda está introduzindo uma experiência aprimorada de IDE local para simplificar o desenvolvimento de aplicativos baseadas em Lambda. Os novos recursos ajudam os desenvolvedores a criar, depurar, testar e implantar aplicativos Lambda com mais eficiência em sua IDE local ao usar o Visual Studio Code (VS Code).

Visão geral

A experiência de IDE faz parte do AWS Toolkit for Visual Studio Code. Uma nova explicação guiada ajuda os desenvolvedores a configurar seu ambiente local e instalar as ferramentas necessárias. O kit de ferramentas inclui um conjunto de aplicativos de exemplos que mostram como iterar seu código localmente. Você pode definir e salvar configurações de compilação para acelerar as compilações das aplicativos. Pode criar um arquivo de configuração para parametrizar o ambiente de depuração para que o VS Code anexe e inicie o depurador. Faça uma iteração mais rápida optando por sincronizar rapidamente as alterações do aplicativo local com a nuvem ou realizar uma implantação completa do aplicativo. Teste as funções localmente e na nuvem e crie e compartilhe eventos de teste para acelerar os testes. Existem botões de ação rápida para criar, implantar e invocar local ou remotamente. O kit de ferramentas se integra ao AWS Infrastructure Composer, fornecendo uma experiência visual de criação de aplicativos diretamente do IDE.

Usando os novos recursos

Instalando a extensão

Para usar a experiência atualizada da IDE, certifique-se de ter a versão mínima 3.31.0 do AWS Toolkit instalada como uma extensão do VS Code.

O AWS Toolkit agora inclui uma seção adicional chamada Application Builder na barra lateral da extensão da AWS. Isso permite que você visualize os recursos do template e crie, construa, depure e teste aplicativos Serverless.

Usando o Application Builder para aplicativos existentes

Você pode abrir um template de aplicativo local existente usando Abrir pasta.

A experiência aprimorada de edição no console do Lambda permite que você baixe o código de função existente e um modelo do AWS Serverless Application Model (AWS SAM). Isso permite que você comece no console e passe a usar a infraestrutura como código com mais facilidade, o que é uma prática recomendada Serverless.

Usando o passo a passo guiado

O passo a passo guiado ajuda você a instalar dependências, selecionar um modelo de aplicativo e explica como usar o Application Builder para iterar localmente e implantar.

  1. Escolha Abrir passo a passo.
  2. A instalação completa leva você a um assistente para instalar as dependências necessárias e selecionar os modelos de aplicativos.

O assistente fornece links de download para instalar as três dependências:

Se você instalou as dependências, selecionar os links reconhece as instalações.

3. Selecione Escolha seu template de aplicativo, que permite criar aplicativos de exemplo no VS Code.

4. O quadro iterar localmente fornece orientação sobre como usar o Application Builder para criar e invocar a função e como visualizar os resultados.

5. Implantar na nuvem fornece um link para Configurar credenciais e explica como implantar sua função e invocar remotamente a partir da sua IDE e visualizar os resultados.

Criação de um aplicativo a partir dos exemplos

As etapas a seguir mostram como criar uma função localmente a partir de um modelo. Você cria o artefato de código, testa e depura localmente, implanta e invoca e visualiza remotamente os resultados e logs, tudo isso sem sair da sua IDE.

  1. Navegue de volta para Escolha seu template de aplicativo.
  2. O novo template com construtor visual permite que você use o Infrastructure Composer para criar um novo aplicativo usando uma tela visual.
  3. Veja mais exemplos de aplicativos selecionando as aplicativos de acordo com vários runtimes.

Há também dois exemplos específicos de aplicativos para explorar a funcionalidade do Lambda.

  • API Rest: saiba como criar uma função Lambda síncrona por trás de uma API.
  • Processamento de arquivos.: Aprenda a criar um aplicativo assíncrono de processamento de arquivos Amazon S3.

Criando um aplicativo síncrono da API Rest

  1. Selecione API Rest e escolha Inicializar seu projeto.
  2. Selecione o tempo de execução de uma linguagem. Selecione Python para este exemplo.
  3. Abra o programa gerenciador de arquivos, crie uma pasta para baixar o aplicativo de exemplo e escolha Criar projeto.

O Application Builder baixa o aplicativo. Isso inclui o código da função hello_world\app.py, com as dependências no requirements.txt, um modelo do AWS SAM, um arquivo template.yaml e um exemplo de invocação do evento, event.json. Um arquivo README.md explica a estrutura do aplicativo e fornece instruções de criação e implantação.

A seção Application Builder é preenchida com os recursos do template.

4. Os ícones fornecem atalhos para visualizar, criar e implantar o aplicativo.

5. Você também pode usar a paleta de comandos para iniciar os comandos do AWS SAM.

6. Selecionar o ícone Abrir arquivo de template abre o modelo do AWS SAM no Infrastructure Composer.

7. Visualize os recursos do aplicativo e selecione Detalhes para editar o modelo usando a tela visual.

8. Navegue até o recurso da função e selecione Abrir manipulador de funções para mostrar o código da função.

Construindo o aplicativo

A etapa de construção ajuda você a criar artefatos a partir dos arquivos no diretório do projeto do aplicativo.

  1. Selecione o ícone Criar modelo SAM.
  2. Especificar sinalizadores de construção permite que você defina as configurações de compilações do AWS SAM.

3. Selecione as configurações de compilação específicas para sua configuração. Em cache e em paralelo são úteis para acelerar futuras compilações. Use container para criar sua função em um container semelhante ao Lambda. Isso permite que você crie aplicativos sem ter o tempo de execução da linguagem e as ferramentas de construção instaladas localmente.

4. Salvar parâmetros adiciona as opções de compilação padrão em samconfig.toml.

version = 0.1
[default.build.parameters]
template_file = "c:\\Code\\lambda-dx\\Rest-API\\template.yaml"
cached = true
parallel = true
use_container = true
YAML

O AWS SAM cria o aplicativo. Ele baixa a imagem do container, instala as dependências e copia o código da função.

5. Pressione qualquer tecla para fechar o terminal adicional.

Itere localmente: invocar e depurar

Você pode invocar e depurar localmente seu aplicativo sem servidor antes de enviá-lo para a nuvem. Isso ajuda você a testar a lógica da sua função mais rapidamente. A depuração gradual permite que você identifique e corrija problemas em seu aplicativo, uma instrução por vez, em seu ambiente local.

Invocação local

1. Na seção Application Builder, navegue até a função e selecione Configuração local de invocação e depuração.

Iniciando a configuração local de invocação e depuração

2. Isso abre outra janela que permite configurar como invocar a função localmente e definir uma configuração de depuração.

Exibindo opções locais de configuração de invocação e depuração

3. Você pode criar exemplos de cargas de eventos para testar sua função. Selecionar um evento fornece uma lista de cargas de eventos acionadores comuns que você pode usar e personalizar.

Seleção de um modelo de evento de exemplo

Esse aplicativo de exemplo tem um evento de amostra incluído.

4. Selecione Arquivo local e escolha o arquivo events\ event.json.

5. Selecione o botão Invocar.

Isso cria o aplicativo e invoca localmente a função em um ambiente de emulação Lambda, usando o arquivo de entrada do evento.

6. Visualize a saída da função no painel Saída do IDE.

Saída da função de visualização

Depuração local

Você também pode depurar a função localmente usando o depurador integrado do VS Code.

  1. Adicione um ponto de interrupção ao código da função.

Adicionando um ponto de interrupção ao código da função

2. Selecione o botão Invocar novamente.

Isso invoca localmente a função e anexa um depurador ao ambiente de emulação Lambda.

3. O depurador para no ponto de interrupção e você pode visualizar as variáveis da função e a pilha de chamadas.

Visualizando a etapa de depuração

4. Use os ícones do depurador do VS Code para percorrer o código.

Usando ícones do depurador do VS Code para percorrer o código.

5. No painel Configuração local de invocação e depuração. Escolha Salvar configuração de depuração.

6. Escolha Adicionar configuração local de invocação e depuração.

Salvando a configuração de depuração

7. Insira um nome de configuração de depuração que cria um arquivo launch.json e adiciona a configuração de depuração.

Nomeando a configuração de depuração

Você pode criar e salvar várias configurações de depuração para diferentes cenários. Consulte a documentação do AWS SAM para obter mais opções de configuração do launch.json.

8. Depois de salvar a configuração de depuração, você pode usar o painel Executar e Depurar do VS Code e selecionar qual configuração de depuração executar.

Usando o painel Executar e depurar

Implantando o aplicativo

1. Navegue até a seção Application Builder e escolha o ícone Implantar aplicativo SAM.

Selecionando o ícone Implantar aplicativo SAM

O AWS SAM oferece duas opções de implantação:

    • A sincronização usa a sincronização do AWS SAM para realizar uma implantação inicial do CloudFormation e, em seguida, permite a sincronização rápida do código do seu aplicativo, o que permite a criação rápida de protótipos. Use isso somente para ambientes de desenvolvimento, pois ele não faz uma implantação completa do CloudFormation em alterações de código.
    • O Deploy faz uma implantação completa do CloudFormation, que é preferida para ambientes de desenvolvimento não rápidos.

Visualizando as opções de implantação do AWS SAM

2. Selecione Sincronizar.

3. Selecione Especificar os parâmetros necessários e salve como padrão.

Especificando parâmetros de sincronização do SAM

4. Selecione uma região para implantar a pilha e insira o nome da pilha. É uma boa prática especificar que essa é uma pilha de desenvolvimento para evitar confusão ao usar a opção Deploy.

Inserindo o nome da pilha de desenvolvimento

5. Selecione um bucket S3 existente para armazenar os artefatos ou crie um novo.

Seleção do bucket S3

6. Especifique os parâmetros de sincronização. Certifique-se de selecionar Watch, pois isso monitora automaticamente as alterações de código e sincroniza rapidamente as alterações de código com o serviço Lambda.

Definindo parâmetros de sincronização

7. A sincronização do AWS SAM faz uma implantação inicial do CloudFormation para criar os recursos e, em seguida, aguarda as alterações no código.

8. Faça uma alteração no código do arquivo do manipulador e salve o arquivo

Código de alteração

9. Isso executa uma sincronização rápida que reduz o tempo de teste na nuvem.

Sincronização rápida de código

10. Você pode usar a opção Deploy para implantar uma versão de teste de sincronização não rápida, alterando o nome da pilha para diferenciá-la da pilha de desenvolvimento.

Nomeando a pilha de versões de teste

Invocação remota

Você pode invocar a função na nuvem a partir do seu IDE. Isso permite testar a funcionalidade sem precisar simular serviços externos, segurança ou outras variáveis de ambiente.

Depois que o aplicativo é implantado, o Application Builder detecta alterações em samconfig.toml e template.yaml e atualiza a lista de recursos com os recursos da nuvem.

Visualizando recursos de nuvem

1. Você pode navegar diretamente até a pilha do CloudFormation para visualizar os recursos.

Navegando até a pilha do CloudFormation

2. A seleção da função fornece a funcionalidade de link rápido, que inclui detalhes da função e um link direto para a console Lambda da sua função.

Opções de link rápido da função de visualização

3. Selecione Invocar na nuvem.

4. Selecione o mesmo arquivo de evento local para a invocação local.

Selecionar arquivo local para invocação remota

5. Escolha Invocação remota.

A função invoca na nuvem usando o evento de teste local e exibe os resultados da chamada remota no painel de saída do IDE local.

Visualizando resultados de invocação remota

6. Nomeie e salve o arquivo de evento local como um evento remoto que se torna disponível no console Lambda.

Salvando evento de teste remoto

Visualizando logs

Você pode buscar os streams de logs do Amazon CloudWatch Log gerados pela sua função Lambda no IDE.

1. Selecione o ícone Pesquisar registros.

Selecionando o ícone de registros de pesquisa

2. Opcionalmente, você pode filtrar os resultados.

Filtrando opcionalmente os resultados do registro

Conclusão

A Lambda está introduzindo uma experiência aprimorada da IDE local para simplificar o desenvolvimento de aplicativos baseados em Lambda usando o VS Code IDE e o AWS Toolkit. Isso simplifica o ciclo de code-test-deploy-debug (codificar-testar-fazer-implatação-depurar). Um passo a passo guiado ajuda a configurar seu ambiente de desenvolvimento local e fornece exemplos de aplicativos para explorar a funcionalidade do Lambda. Em seguida, você pode criar, depurar, testar e implantar aplicativos Lambda usando atalhos de ícones e a Paleta de Comandos. Isso permite que você itere com mais facilidade em seus aplicativos baseados em Lambda sem alternar entre várias interfaces.

Para obter mais recursos de aprendizado sem servidor, visite Serverless Land.

Este blog é uma tradução do conteúdo original em inglês (link aqui).

Biografia do autor

Julian Wood é Developer Advocate Sênior na Amazon Web Services (AWS) e ajuda desenvolvedores e criadores a adotar Serverless como a tecnologias que podem transformar a maneira como criam e executam aplicativos.

Biografia do tradutor

Daniel Abib é Senior Solution Architect na AWS, com mais de 25 anos trabalhando com gerenciamento de projetos, arquiteturas de soluções escaláveis, desenvolvimento de sistemas e CI/CD, microsserviços, arquitetura Serverless & Containers e segurança. Ele trabalha apoiando clientes corporativos, ajudando-os em sua jornada para a nuvem.

https://www.linkedin.com/in/danielabib/

Biografia do Revisor

Nicolas Tarzia é Senior Technical Account Manager na AWS, com mais de 13 anos de experiencia, com ampla experiencia em arquitetura cloud, engenharia e design de software. Atualmente está habilitando empresas do ramo de ISV (Independent Software Vendors) simplificando a operação na nuvem e otimizando os custos em cloud. Sua area de interesse são tecnologias serverless.

https://www.linkedin.com/in/nicolastarzia