Conceitos básicos do uso de aplicações sem servidor - Kit de ferramentas da AWS para VS Code

Conceitos básicos do uso de aplicações sem servidor

As seções a seguir descrevem como começar a criar um AWS Serverless Application por meio do AWS Toolkit for Visual Studio Code usando o AWS Serverless Application Model (AWS SAM) e pilhas do AWS CloudFormation.

Pré-requisitos

Antes de poder criar ou trabalhar com um AWS Serverless Application, os pré-requisitos a seguir devem ser atendidos.

nota

As operações a seguir podem exigir que você saia ou reinicie o VS Code antes que as alterações sejam concluídas.

  • Instalar a interface de linha de comandos (CLI) do AWS SAM. Para obter mais informações e instruções sobre como instalar a CLI do AWS SAM, consulte o tópico Instalar a CLI do AWS SAM neste Guia do usuário do AWS Serverless Application Model.

  • No arquivo de configuração AWS, identifique a região da AWS padrão. Para obter mais informações sobre o arquivo de configuração, consulte o tópico Configurações de arquivos de configuração e credenciais no Guia do usuário da versão 2 da AWS Command Line Interface.

  • Instale o SDK do seu idioma e configure a cadeia de ferramentas. Para obter mais informações sobre como configurar a cadeia de ferramentas usando o AWS Toolkit for Visual Studio Code, consulte o tópico Configurar uma cadeia de ferramentas neste guia do usuário.

  • Instale a extensão de suporte à linguagem YAML no VS Code Marketplace. Isso é necessário para que o recurso CodeLens de arquivos de modelo do AWS SAM esteja acessível. Para obter mais informações sobre o CodeLens, consulte a seção CodeLens na documentação do VS Code

Permissões do IAM para aplicações sem servidor

No kit de ferramentas para VS Code, você deve ter um perfil de credenciais que contenha as permissões do AWS Identity and Access Management (IAM) necessárias para implementar e executar aplicações sem servidor. Você deve ter acesso adequado de leitura/gravação aos seguintes produtos: AWS CloudFormation, IAM, Lambda, Amazon API Gateway, Amazon Simple Storage Service (Amazon S3) e Amazon Elastic Container Registry (Amazon ECR).

Para obter mais informações sobre como configurar a autenticação necessária para implantar e executar aplicações sem servidor, consulte Managing resource access and permissions no Guia do desenvolvedor do AWS Serverless Application Model. Para obter informações sobre como configurar credenciais, consulte AWS Credenciais do IAM neste guia do usuário.

Criar uma aplicação sem servidor (local)

Este procedimento mostra como criar uma aplicação sem servidor com o kit de ferramentas para VS Code usando o AWS SAM. A saída deste procedimento é um diretório local no host de desenvolvimento contendo um exemplo de aplicação sem servidor, que você pode criar, testar localmente, modificar e implantar na Nuvem AWS.

  1. Para abrir a paleta de comandos, selecione Exibir, Paleta de comandos e digite AWS.

  2. Escolha Kit de ferramentas da AWS: criar aplicação Lambda SAM.

    
            Caixa de diálogo da paleta de comandos.
    nota

    Se a CLI do AWS SAM não estiver instalada, você verá um erro no canto inferior direito do editor do VS Code. Se isso acontecer, verifique se todos os pré-requisitos e suposições foram atendidos.

  3. Selecione o runtime da aplicação do AWS SAM.

    nota

    Se você selecionar um dos tempos de execução com “(Image)”, o tipo de pacote da aplicação será Image. Se você selecionar um dos tempos de execução sem “(Image)”, o tipo de pacote da aplicação será Zip. Para obter mais informações sobre a diferença entre o Image e os tipos de pacote de Zip, consulte Pacotes de implantação do Lambda no Manual do desenvolvedor do AWS Lambda.

  4. Dependendo do runtime selecionado, você talvez precise selecionar um gerenciador de dependências e uma arquitetura de runtime para a aplicação do SAM.

    Dependency Manager

    Escolha entre Gradle ou Maven.

    nota

    Essa opção de ferramentas de automação de compilação está disponível apenas para o runtime Java.

    Architecture

    Escolha entre x86_64 ou arm64.

    A opção de executar a aplicação sem servidor em um ambiente emulado baseado em ARM64 em vez do ambiente padrão baseado em x86_64 está disponível para os seguintes runtimes:

    • nodejs12.x (ZIP e imagem)

    • nodejs14.x (ZIP e imagem)

    • python3.8 (ZIP e imagem)

    • python3.9 (ZIP e imagem)

    • python3.10 (ZIP e imagem)

    • python3.11 (ZIP e imagem)

    • java8.al2 com Gradle (ZIP e imagem)

    • java8.al2 com Maven (somente ZIP)

    • java11 com Gradle (ZIP e imagem)

    • java11 com Maven (somente ZIP)

    Importante

    Você deve instalar a versão 1.33.0 ou posterior da AWS CLI para que as aplicações sejam executadas em ambientes baseados em ARM64. Para obter mais informações, consulte Pré-requisitos.

  5. Escolha um local para o seu novo projeto. Você pode usar uma pasta workspace existente se uma estiver aberta, Select a different folder (Selecionar uma pasta diferente) já existente, ou criar uma nova pasta e selecioná-la. Neste exemplo, escolha There are no workspace folders open (Não há pastas workspace abertas) para criar uma pasta chamada MY-SAM-APP.

  6. Insira um nome para seu novo projeto. Neste exemplo, use my-sam-app-nodejs. Depois de pressionar Enter, o kit de ferramentas para VS Code levará alguns instantes para criar o projeto.

Quando o projeto é criado, sua aplicação é adicionada ao espaço de trabalho atual. Você o verá listado na janela do Explorer.

Abrir uma aplicação sem servidor (local)

Para abrir uma aplicação sem servidor no host de desenvolvimento local, abra a pasta que contém o arquivo de modelo da aplicação.

  1. No menu Arquivo, selecione Abrir.

  2. Na caixa de diálogo Abrir pasta, acesse a pasta da aplicação sem servidor que você deseja abrir.

  3. Selecione o botão Selecionar pasta.

Ao abrir a pasta de uma aplicação, ela é adicionada à janela do Explorer.

Executar e depurar uma aplicação sem servidor usando um modelo (local)

Você pode usar o kit de ferramentas para VS Code para configurar como depurar aplicações sem servidor e executá-las localmente no ambiente de desenvolvimento.

Você começa a configurar o comportamento de depuração usando o recurso CodeLens do VS Code para identificar uma função do Lambda qualificada. O CodeLens permite interações sensíveis ao conteúdo com o código-fonte. Para obter informações sobre como garantir que você possa acessar o recurso CodeLens, consulte a seção Pré-requisitos anterior neste tópico.

nota

Neste exemplo, você depura uma aplicação que usa JavaScript. No entanto, é possível usar os recursos de depuração do kit de ferramentas para VS Code com os seguintes runtimes e linguagens:

  • C#: .NET Core 2.1, 3.1; .NET 5.0

  • JavaScript/TypeScript: Node.js 12. x, 14. x

  • Python: 3.6, 3.7, 3.8, 3.9, 3.10, 3.11

  • Java: 8, 8.al2, 11

  • Go: 1.x

A escolha de idioma também afeta como o CodeLens detecta manipuladores qualificados do Lambda. Para obter mais informações, consulte Executar e depurar funções do Lambda diretamente do código.

Neste procedimento, você usa a aplicação de exemplo criada anteriormente na seção Criar uma aplicação sem servidor (local) neste tópico.

  1. Para visualizar os arquivos da aplicação no explorador de arquivos do VS Code, selecione Exibir, Explorador.

  2. Na pasta da aplicação (por exemplo, my-sample-app), abra o arquivo template.yaml.

    nota

    Se você usar um modelo com um nome que não seja template.yaml, o indicador do CodeLens não ficará automaticamente disponível no arquivo YAML. Isso significa que você deve adicionar manualmente uma configuração de depuração.

  3. No editor de template.yaml, acesse a seção Resources do modelo que define os recursos sem servidor. Nesse caso, esse é o recurso HelloWorldFunction do tipo AWS::Serverless::Function.

    No indicador do CodeLens desse recurso, escolha Adicionar configuração de depuração.

    
            Use o indicador do CodeLens no arquivo template.yaml para adicionar uma configuração de depuração.
  4. Na paleta de comandos, selecione o runtime em que a aplicação do AWS SAM será executada.

  5. No editor para o arquivo launch.json, edite ou confirme valores para as seguintes propriedades de configuração:

    • "name" – Insira um nome de leitura fácil para aparecer na caixa Configuration (Configuração) no campo suspenso da exibição Run (Executar).

    • "target": verifique se o valor é "template" para que o modelo AWS SAM seja o ponto de entrada para a sessão de depuração.

    • "templatePath" – Insira um caminho relativo ou absoluto para o arquivo template.yaml.

    • "logicalId": verifique se o nome corresponde ao especificado na seção Recursos do modelo AWS SAM. Neste caso, é o HelloWorldFunction do tipo AWS::Serverless::Function.

    
            Configure o arquivo launch.json para depuração baseada em modelo.

    Para obter mais informações sobre essas e outras entradas no arquivo launch.json, consulte Opções de configuração para depurar aplicações sem servidor.

  6. Se você estiver satisfeito com sua configuração de depuração, salve launch.json. Em seguida, para iniciar a depuração, selecione o botão verde “reproduzir” na visualização EXECUTAR.

    Quando as sessões de depuração forem iniciadas, o painel DEBUG CONSOLE (CONSOLE DE DEPURAÇÃO) mostra a saída de depuração e exibe todos os valores retornados pela função Lambda. (Ao depurar aplicações AWS SAM, o kit de ferramentas da AWS é selecionado como canal de Saída no painel Saída.)

Sincronizar aplicações AWS SAM

O AWS Toolkit for Visual Studio Code executa o comando sam sync da CLI do AWS SAM para implantar as aplicações sem servidor na Nuvem AWS. Para obter mais informações sobre a sincronização do AWS SAM, consulte o tópico Referência de comandos da AWS SAMCLI no Guia do desenvolvedor do AWS Serverless Application Model

O procedimento a seguir descreve como implantar aplicações sem servidor usando o kit de ferramentas da Nuvem AWS para VS Codesam sync.

  1. No menu principal do VS Code, abra a paleta de comandos, expanda Exibir e selecione Paleta de comandos.

  2. Na Paleta de comandos, busque AWS e escolha Sincronizar aplicação do SAM para começar a configurar a sincronização.

    
            Comando para sincronizar uma aplicação sem servidor.
  3. Selecione a região da AWS para sincronizar a aplicação sem servidor.

  4. Escolha o arquivo template.yaml a ser usado para a implantação.

  5. Selecione um bucket do Amazon S3 existente ou insira um novo nome de bucket do Amazon S3 para implantar a aplicação.

    Importante

    O bucket do Amazon S3 deve atender aos seguintes requisitos:

    • O bucket deve estar na região com a qual você está sincronizando.

    • Esse nome de bucket do Amazon S3 deve ser exclusivo globalmente com relação a todos os nomes de buckets existentes no Amazon S3.

  6. Se a aplicação sem servidor incluir uma função com o tipo de pacote Image, insira o nome de um repositório do Amazon ECR que essa implantação pode usar. O repositório deve estar na região na qual você estiver implantando.

  7. Selecione uma pilha de implantação na lista de implantações anteriores ou crie uma pilha de implantação inserindo um novo nome de pilha. Depois, prossiga para iniciar o processo de sincronização.

    nota

    As pilhas usadas em implantações anteriores são recuperadas por espaço de trabalho e região.

  8. Durante o processo de sincronização, o status da implantação é capturado na guia Terminal do VS Code. Verifique se a sincronização foi bem-sucedida na guia Terminal. Se ocorrer um erro, você receberá uma notificação.

    
            Um pop-up de erro ao implantar uma aplicação sem servidor.
    nota

    Para obter mais informações sobre a sincronização, os logs do AWS Toolkit for Visual Studio Code podem ser acessados na paleta de comandos.

    Para acessar os logs do AWS Toolkit for Visual Studio Code na paleta de comandos, expanda Exibir, selecione Paleta de comandos, busque por AWS: View AWS Toolkits Logs e escolha-o quando ele preencher a lista.

Após a conclusão da implantação, a aplicação é mostrada na janela do AWS Explorer. Para obter mais informações sobre como invocar a função do Lambda criada como parte da aplicação, consulte o tópico Interagir de forma remota com as funções do Lambda neste guia do usuário.

Excluir uma aplicação sem servidor da Nuvem AWS

A exclusão de uma aplicação sem servidor requer a exclusão do AWS CloudFormation que você implantou anteriormente na Nuvem AWS. Observe que esse procedimento não exclui o diretório da aplicação do host local.

  1. Abra a AWS Explorer.

  2. Na janela do AWS Explorer, expanda a região que contém a aplicação implantada que você deseja excluir e expanda o AWS CloudFormation.

  3. Abra o menu de contexto (clique com o botão direito do mouse) do nome da pilha do AWS CloudFormation que corresponde à aplicação sem servidor que você deseja excluir e selecione Excluir pilha do AWS CloudFormation.

  4. Para confirmar que deseja excluir a pilha selecionada, escolha Excluir.

Se a exclusão da pilha for bem-sucedida, o kit de ferramentas para VS Code removerá o nome da pilha da lista do AWS CloudFormation no AWS Explorer.