Depure remotamente as funções do Lambda com o Visual Studio Code - AWS Lambda

Depure remotamente as funções do Lambda com o Visual Studio Code

Com o atributo de depuração remota no AWS Toolkit for Visual Studio Code, você pode depurar suas funções do Lambda em execução diretamente na nuvem da AWS. Isso é útil ao investigar problemas que são difíceis de replicar localmente ou diagnosticar somente com logs.

Com a depuração remota, você pode:

  • Definir pontos de interrupção no código da função do Lambda.

  • Analisar a execução do código em tempo real.

  • Inspecionar as variáveis e o estado durante o runtime.

  • Depure as funções do Lambda implantadas para a AWS, incluindo aquelas em VPCs ou com permissões específicas do IAM.

Tempos de execução compatíveis

A depuração remota é compatível com os seguintes tempos de execução:

  • Python (AL2023)

  • Java

  • JavaScript/Node.js (AL2023)

nota

A depuração remota é compatível com arquiteturas x86_64 e arm64.

Segurança e depuração remota

A depuração remota opera dentro dos limites de segurança existentes do Lambda. Os usuários podem anexar camadas a uma função usando a permissão UpdateFunctionConfiguration, que já tem a capacidade de acessar as variáveis e a configuração do ambiente da função. A depuração remota não se estende além dessas permissões existentes. Em vez disso, ela adiciona controles de segurança extras por meio de tunelamento seguro e gerenciamento automático de sessões. Além disso, a depuração remota é um atributo totalmente controlado pelo cliente que requer permissões e ações explícitas:

  • Criação de túnel seguro de IoT: o AWS Toolkit deve criar um túnel seguro de IoT, que só ocorre com a permissão explícita do usuário usando o iot:OpenTunnel.

  • Anexo da camada de depuração e gerenciamento de tokens: o processo de depuração mantém a segurança por meio desses controles:

    • A camada de depuração deve ser anexada à função do Lambda e esse processo requer as seguintes permissões: lambda:UpdateFunctionConfiguration e lambda:GetLayerVersion.

    • Um token de segurança (gerado via iot:OpenTunnel) deve ser atualizado na variável de ambiente da função antes de cada sessão de depuração, o que também exige lambda:UpdateFunctionConfiguration.

    • Por segurança, esse token é rotacionado automaticaplamente e a camada de depuração é removida automaticamente no final de cada sessão de depuração e não pode ser reutilizada.

nota

A depuração remota é compatível com arquiteturas x86_64 e arm64.

Pré-requisitos

Antes de iniciar a depuração remota, certifique-se de ter o seguinte:

  1. Uma função do Lambda implantada em sua conta AWS.

  2. AWS Toolkit for Visual Studio Code: Para obter as instruções de instalação, consulte Como configurar o AWS Toolkit for Visual Studio Code.

  3. A versão do AWS Toolkit que você instalou é a 3.69.0 ou mais recente.

  4. Credenciais da AWS configuradas no AWS Toolkit for Visual Studio Code. Para obter mais informações, consulte Autenticação e controle de acesso.

Depure remotamente as funções do Lambda

Siga estas etapas para iniciar uma sessão de depuração remota:

  1. Abra o AWS Explorer no VS Code selecionando o ícone da AWSna barra lateral esquerda.

  2. Expanda a seção Lambda para ver suas funções.

  3. Clique com o botão direito do mouse na função que você deseja depurar.

  4. No menu de contexto, selecione Invocar remotamente.

  5. Na janela de invocação que se abre, marque a caixa Habilitar depuração.

  6. Clique em Invocar para iniciar a sessão de depuração remota.

nota

As funções do Lambda têm um limite combinado de 250 MB para o código da função e todas as camadas anexadas. A camada de depuração remota adiciona aproximadamente 40 MB ao tamanho da sua função.

Uma sessão de depuração remota termina quando você:

  • Escolhe Remover Configuração de Depuração na tela de configuração de invocação remota.

  • Seleciona o ícone de desconexão nos controles de depuração do VS Code.

  • Seleciona o arquivo do manipulador no editor do VS Code.

nota

A camada de depuração é removida automaticamente após 60 segundos de inatividade após sua última invocação.

Desabilite a depuração remota

Há três maneiras de desabilitar esse atributo:

  • Negar atualizações da função: defina lambda:UpdateFunctionConfiguration como deny.

  • Restrinja as permissões de IoT negue permissões relacionadas à IoT

  • Bloquear camadas de depuração: negue lambda:GetLayerVersion para os seguintes ARNs:

    • arn:aws:lambda:*:*:layer:LDKLayerX86:*

    • arn:aws:lambda:*:*:layer:LDKLayerArm64:*

    nota

    A desabilitação desse atributo impede que a camada de depuração seja adicionada durante as atualizações de configuração da função.

Para obter mais informações sobre o uso do Lambda no VS Code, consulte Como desenvolver funções do Lambda localmente com o VS Code.

Para obter instruções detalhadas sobre solução de problemas, casos de uso avançados e disponibilidade regional, consulte Depuração remota de funções do Lambda no Guia do usuário do AWS Toolkit for Visual Studio Code.