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
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
elambda: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 exigelambda: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:
-
Uma função do Lambda implantada em sua conta AWS.
-
AWS Toolkit for Visual Studio Code: Para obter as instruções de instalação, consulte Como configurar o AWS Toolkit for Visual Studio Code.
-
A versão do AWS Toolkit que você instalou é a 3.69.0 ou mais recente.
-
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:
-
Abra o AWS Explorer no VS Code selecionando o ícone da AWSna barra lateral esquerda.
-
Expanda a seção Lambda para ver suas funções.
-
Clique com o botão direito do mouse na função que você deseja depurar.
-
No menu de contexto, selecione Invocar remotamente.
-
Na janela de invocação que se abre, marque a caixa Habilitar depuração.
-
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
comodeny
. -
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.
Mais informações
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.