

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Funções do AWS Lambda
<a name="building-lambda"></a>

O AWS Toolkit for Visual Studio Code fornece suporte abrangente para funções do AWS Lambda, permitindo que você crie, teste e implante diretamente do VS Code.

O Lambda é um serviço de computação totalmente gerenciado e orientado por eventos que executa automaticamente seu código em resposta a eventos de mais de 200 serviços AWS e aplicações de software como serviço (SaaS). Para obter mais informações sobre o serviço AWS Lambda, consulte o Guia do desenvolvedor [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).

Os tópicos a seguir descrevem como trabalhar com o AWS Lambda no AWS Toolkit for Visual Studio Code.

**Topics**
+ [Trabalhando com AWS Lambda funções](remote-lambda.md)
+ [AWS Lambda console para IDE](lambda-console-ide.md)
+ [AWS Lambda com LocalStack suporte](lambda-localstack.md)
+ [AWS Lambda depuração remota](lambda-remote-debug.md)

# Trabalhando com AWS Lambda funções
<a name="remote-lambda"></a>

 AWS Toolkit for Visual Studio Code Isso permite que você trabalhe com suas AWS Lambda funções em seu ambiente VS Code local. Com o AWS kit de ferramentas, você pode criar, editar, testar, depurar e implantar suas funções do Lambda sem precisar sair do IDE. Para obter informações detalhadas sobre o AWS Lambda serviço, consulte o Guia do [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)desenvolvedor.

As seções a seguir descrevem como começar a trabalhar com funções do Lambda no AWS Toolkit for Visual Studio Code.

**nota**  
Se você já criou funções Lambda usando o Console de gerenciamento da AWS, então você pode invocá-las a partir do Toolkit. Além disso, você pode abrir suas funções do Lambda no VS Code a AWS Lambda console partir do. Para obter informações adicionais, consulte o [AWS Lambda console para IDE](lambda-console-ide.md) tópico neste guia do usuário. Para criar uma nova função do Lambda no VS Code, siga as etapas descritas no tópico [Criação de um novo aplicativo sem servidor (local)](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/sam-get-started.html#serverless-apps-create) neste guia do usuário.

## Pré-requisitos
<a name="remote-lambda-prereq"></a>

As seguintes condições devem ser atendidas para trabalhar com o AWS Lambda serviço no AWS kit de ferramentas.
+ A versão mais recente do AWS Toolkit for Visual Studio Code é instalada e configurada com suas AWS credenciais.
+ Suas permissões e políticas gerenciadas AWS Identity and Access Management (IAM) estão configuradas para funcionar com o AWS Lambda serviço. Para obter informações detalhadas sobre como configurar suas permissões e criar uma política AWS gerenciada compatível, consulte o AWS Lambda tópico [AWS Identity and Access Management for](https://docs.aws.amazon.com/lambda/latest/dg/security-iam.html) no *Guia do AWS Lambda desenvolvedor*.
+ Você tem AWS Lambda funções existentes ou está familiarizado com a criação de uma. Para obter instruções sobre como criar uma função do Lambda, consulte o tópico [Criar sua primeira função do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) no Guia do desenvolvedor *AWS Lambda *.

## Invocar uma função do Lambda
<a name="invoke-lam-func"></a>

Para invocar uma função Lambda da AWS sua conta no VS Code, conclua as etapas a seguir.

1. A partir do AWS Toolkit for Visual Studio Code, expanda o AWS explorador.

1. Do AWS explorador, expanda o **Lambda** para visualizar seus recursos do Lambda.

1. Abra o menu de contexto (clique com o botão direito do mouse) da função do Lambda que você deseja invocar e escolha **Invocar na nuvem** ou o ícone **Invocar na nuvem** para abrir o menu de configuração de **Invocação remota no VS Code**.

1. No menu **Configuração de invocação remota**, especifique suas configurações de **carga útil** e adicione qualquer informação adicional necessária para o evento.
**nota**  
O primeiro processo de invocação pode começar a ser executado assim que você escolher **Invocar na nuvem no AWS explorador**. A saída é exibida na guia **SAÍDA** do terminal VS Code.

1. Escolha o botão **Invocação remota** para invocar sua função. A saída é exibida na guia **SAÍDA** do terminal VS Code.

## Excluir uma função do Lambda
<a name="delete-lambda"></a>

Para apagar uma função do Lambda, complete o procedimento a seguir.

**Atenção**  
Não use esse procedimento para excluir funções do Lambda associadas ao [CloudFormation](https://docs.aws.amazon.com/cloudformation/). Essas funções devem ser excluídas por meio da pilha do CloudFormation .

1. A partir do AWS Toolkit for Visual Studio Code, expanda o AWS explorador.

1. Do AWS explorador, expanda o **Lambda** para visualizar seus recursos do Lambda.

1. Clique com o botão direito do mouse na função do Lambda que você deseja excluir e escolha **Excluir**.

1. Quando solicitado, confirme que deseja excluir a série.

Depois que a função é excluída, ela não é mais listada no AWS explorador.

## Baixar uma função do Lambda
<a name="import-lambda"></a>

Você pode baixar o código de uma função do Lambda remota para o seu espaço de trabalho do VS Code para edição e depuração.

**nota**  
Para baixar sua função Lambda, você deve estar trabalhando em um espaço de trabalho do VS Code com uma pasta acessível e o AWS Toolkit só oferece suporte a esse recurso com funções Lambda usando tempos de execução Node.js e Python.

1. A partir do AWS Toolkit for Visual Studio Code, expanda o AWS explorador.

1. Do AWS explorador, expanda o **Lambda** para visualizar seus recursos do Lambda.

1. Clique com o botão direito do mouse na função do Lambda que você deseja baixar e escolha **Baixar**.

1. Sua função Lambda é aberta no editor do VS Code e é exibida no AWS explorador quando o download é concluído. O AWS kit de ferramentas também cria uma *configuração de inicialização* no painel de execução do VS Code, permitindo que você execute e depure a função Lambda localmente com. AWS Serverless Application Model Para obter mais informações sobre o uso AWS SAM, consulte[Executar e depurar uma aplicação sem servidor usando um modelo (local)](sam-get-started.md#serverless-apps-debug). 

## Implantar atualizações para novas funções do Lambda
<a name="deploy-lambda"></a>

Você pode implantar atualizações para novas funções do Lambda a partir de um local temporário não especificado em sua máquina local.

**nota**  
Quando há alterações não implantadas em seus arquivos Lambda, você é notificado pelo ícone **M** localizado ao lado dos arquivos modificados no editor de código do VS Code e no AWS Explorer.

**Fazer implantação a partir do editor do VS Code**

1. Abra um arquivo da sua função do Lambda no editor de código do VS Code e faça uma alteração no arquivo.

1. Salve manualmente no menu principal do VS Code ou pressione **option\$1s** (Mac) **ctrl\$1s** (Windows).

1. O VS Code solicita automaticamente que você implante suas alterações na nuvem. Escolha o botão **Implantar** para confirmar a implantação.

1. O VS Code atualiza você sobre o status da sua implantação e notifica quando o processo é concluído.

**Implantação a partir do Explorer AWS**

1. Abra um arquivo da sua função do Lambda no editor de código do VS Code e faça uma alteração no arquivo.

1. No AWS Kit de ferramentas, expanda o AWS explorador.

1. No AWS explorador, expanda a AWS região com a função Lambda para a qual você deseja implantar alterações.

1. Na AWS região, expanda o Lambda e navegue pela função para a qual você deseja implantar as alterações.

1. No menu rápido ao lado da sua função, escolha o ícone **Salvar e implantar seu código**.

1. O VS Code atualiza você sobre o status da sua implantação e notifica quando o processo é concluído.

## Carregando atualizações para funções do Lambda existentes
<a name="upload-lambda"></a>

O procedimento a seguir descreve como fazer upload de alterações locais feitas em suas funções do Lambda existentes. Esse recurso suporta uploads com qualquer tempo de execução compatível com o Lambda.

**Atenção**  
Antes de fazer upload da função do Lambda, esteja ciente do seguinte:  
A atualização do código dessa forma não usa a AWS SAM CLI para implantação ou cria uma pilha CloudFormation 
O AWS kit de ferramentas não valida o código. Valide seu código e teste suas funções antes de fazer o upload de qualquer alteração para a nuvem. 

**Fazer upload de um arquivo .zip**

1. A partir do AWS Toolkit for Visual Studio Code, expanda o AWS explorador.

1. Do AWS explorador, expanda o **Lambda** para visualizar seus recursos do Lambda.

1. Clique com o botão direito do mouse na função do Lambda para a qual você deseja fazer o upload das alterações e escolha **Carregar Lambda** para abrir o menu **Selecionar tipo de upload**.

1. Escolha **Arquivo ZIP** para localizar o `ZIP Archive` em seu diretório local.

1. Quando solicitado, confirme o upload para iniciar o upload do selecionado `ZIP Archive`.

1. O status do seu upload é exibido no VS Code e você é notificado quando o processo de upload for concluído.

**Fazer upload de um diretório sem criar**

1. A partir do AWS Toolkit for Visual Studio Code, expanda o AWS explorador.

1. Do AWS explorador, expanda o **Lambda** para visualizar seus recursos do Lambda.

1. Clique com o botão direito do mouse na função do Lambda para a qual você deseja fazer o upload das alterações e escolha **Carregar Lambda** para abrir o menu **Selecionar tipo de upload**.

1. Escolha **Diretório** para prosseguir até a tela **Criar diretório**.

1. Na tela **Criar diretório**, escolha **Não** para escolher um diretório local para upload.

1. Quando solicitado, confirme o upload para fazer upload do diretório selecionado.

1. O status do seu upload é exibido no VS Code e você é notificado quando o processo de upload for concluído.

**Fazer upload de um diretório com uma compilação**
**nota**  
Esteja ciente do seguinte:  
Esse procedimento requer a AWS Serverless Application Model CLI.
O AWS kit de ferramentas notifica que um manipulador correspondente não pode ser detectado antes do upload.
Para alterar o manipulador anexado à sua função Lambda, use AWS Lambda console o ou o. AWS Command Line Interface

1. A partir do AWS Toolkit for Visual Studio Code, expanda o AWS explorador.

1. Do AWS explorador, expanda o **Lambda** para visualizar seus recursos do Lambda.

1. Clique com o botão direito do mouse na função do Lambda para a qual você deseja fazer o upload das alterações e escolha **Carregar Lambda** para abrir o menu **Selecionar tipo de upload**.

1. Escolha **Diretório** para prosseguir até a tela **Criar diretório**.

1. Na tela **Criar diretório**, escolha **Sim** e selecione um diretório local para upload.

1. Quando solicitado, confirme o upload para começar a criar e carregar o diretório selecionado.

1. O status do seu upload é exibido no VS Code e você é notificado quando o processo de upload for concluído.

## Convertendo sua função Lambda em um projeto AWS SAM
<a name="lambda-sam"></a>

Para converter sua função Lambda em uma AWS SAM pilha, conclua as etapas a seguir.

**Atenção**  
Atualmente, somente um subconjunto de recursos tem suporte na conversão de uma função do Lambda em um projeto AWS SAM . Para localizar os recursos ausentes após uma conversão, verifique o console Lambda e adicione-os manualmente ao seu AWS SAM modelo. Para obter detalhes adicionais sobre recursos compatíveis e não suportados, consulte o tópico [Suporte ao tipo de recurso](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) no *Guia do desenvolvedor AWS CloudFormation *.

1. No AWS Kit de ferramentas, expanda o AWS explorador.

1. No AWS explorador, expanda a AWS região com a função Lambda que você deseja converter em um AWS SAM projeto.

1. Na AWS região, expanda o Lambda e navegue pela função que você deseja converter em uma AWS SAM pilha.

1. No menu rápido ao lado da função do Lambda, escolha o ícone **Converter em aplicativo SAM** para navegar no sistema de arquivos local e especificar um local para seu novo projeto AWS SAM .

1. Depois de especificar um local em que o AWS Toolkit começa a converter sua função Lambda em um AWS SAM projeto, o VS Code fornece atualizações sobre o status do processo.
**nota**  
esse processo pode demorar alguns minutos.

1. Quando solicitado pelo VS Code, insira um nome de pilha e pressione a tecla **Enter** para prosseguir.

1. O VS Code continua atualizando você com o status do seu projeto, depois notifica você quando o processo é concluído e abre seu novo AWS SAM projeto como um espaço de trabalho do VS Code.

# AWS Lambda console para IDE
<a name="lambda-console-ide"></a>

O recurso AWS Lambda console para IDE permite que você baixe suas AWS Lambda funções do AWS Lambda console VS Code. Trabalhar com suas funções Lambda no VS Code dá acesso a outras opções de desenvolvimento local, como AWS Serverless Application Model ()AWS SAM e o. AWS Cloud Development Kit (AWS CDK)

Para obter mais informações sobre AWS Lambda, consulte o Guia do [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)desenvolvedor. Para começar a trabalhar com sua função Lambda no AWS kit de ferramentas, consulte o tópico [Trabalhando com AWS Lambda funções](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/remote-lambda.html) neste guia do usuário. As seções a seguir descrevem como mover seu fluxo de trabalho do Console Lambda para o VS Code. Para obter informações detalhadas sobre como mover suas funções do Lambda do console Lambda para o VS Code, incluindo como começar a trabalhar com o console Lambda, consulte o tópico [Desenvolvendo funções do Lambda localmente](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac-local-development.html) com o VS Code no Guia do Desenvolvedor. *AWS Lambda *

## Mova do console para o desenvolvimento local
<a name="w2aac17c43c13b7"></a>

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

1. Mantenha o [console do Lambda](https://console.aws.amazon.com/lambda) aberto em seu navegador.

1. No console Lambda, escolha a função que você deseja abrir no VS Code.

1. Na visualização da função, navegue até a guia **Fonte do código**.

1. Na guia **Fonte do código**, escolha **Abrir no VS Code**.

## Trabalhando com sua função do Lambda no VS Code
<a name="w2aac17c43c13b9"></a>

Quando sua função do Lambda é aberta no VS Code por meio do console Lambda: 
+ O VS Code é iniciado automaticamente na sua máquina local.
+ Sua função do Lambda é aberta como um espaço de trabalho do VS Code.
+ Seu Lambda `handler file` abre no editor de código do VS Code.
**nota**  
Se não houver um arquivo `handler file` configurado corretamente no espaço de trabalho, nenhum arquivo será aberto no editor de código do VS Code.

Abrir sua função Lambda no VS Code por meio do console Lambda permite acessar todos os recursos existentes do Toolkit AWS Lambda, incluindo a capacidade de editar o código da função com suporte completo a idiomas, testes locais, depuração remota, suporte à implantação e gerenciamento de dependências. Para obter mais informações sobre os recursos do Lambda suportados no AWS Toolkit, consulte o índice do [AWS Lambda](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/building-lambda.html)serviço neste guia do usuário.

# AWS Lambda com LocalStack suporte
<a name="lambda-localstack"></a>

Crie, teste e depure seus aplicativos sem servidor com LocalStack suporte no. AWS Toolkit for Visual Studio Code LocalStack é um emulador de AWS nuvem que permite testes locais de aplicativos sem servidor.

Para obter informações adicionais sobre AWS Lambda, consulte o *Guia do [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)desenvolvedor*. Para saber mais sobre LocalStack, visite o site deles [LocalStack](https://www.localstack.cloud/).

## Pré-requisitos
<a name="prereq"></a>

 A seguir estão os pré-requisitos para trabalhar LocalStack no VS Code. 

**nota**  
*A LocalStack CLI é instalada durante o processo de configuração, mas se você preferir uma versão diferente da LocalStack CLI, a versão mínima necessária é 4.8.0.*
+ É necessária uma conta de aplicativo LocalStack Web para acessar todos os recursos disponíveis nos LocalStack níveis gratuito e pago. LocalStack a edição comunitária está disponível sem uma conta.
+ É necessário trabalhar com o Docker LocalStack no VS Code. Para obter mais informações sobre LocalStack os requisitos do Docker, consulte o tópico [Imagens do LocalStack Docker](https://docs.localstack.cloud/aws/capabilities/config/docker-images/) na LocalStack documentação.
+ **Recomendado:** o AWS Command Line Interface (AWS CLI) ajuda você a trabalhar com serviços em seu ambiente de nuvem simulado.

## Instalando LocalStack
<a name="install"></a>

 Para instalar versões em camadas LocalStack gratuitas e pagas, conclua as etapas a seguir. 

**nota**  
Para obter instruções sobre como configurar a edição LocalStack Community, consulte o conteúdo da *LocalStackcomunidade* na LocalStack seção *Configuração* deste tópico.

1. No AWS kit de ferramentas, expanda o explorador do **APPLICATION BUILDER**.

1. Escolha o botão **Abrir passo a passo** para abrir a guia Passo a passo para **começar a criar seu aplicativo** no editor de código do VS Code.

1. No passo a passo, escolha **Instalar LocalStack** para iniciar o processo de LocalStack instalação no VS Code.

## Conf LocalStackiguração
<a name="setup"></a>

Depois de instalar a LocalStack extensão para o VS Code, você poderá ver um dos seguintes indicadores quando a configuração for necessária:
+ Na barra de status do VS Code, localizada no canto inferior esquerdo do IDE por padrão, o LocalStack status é vermelho.
+ O VS Code solicita que você configure. LocalStack

Há dois tipos de instalação e configurações para LocalStack, dependendo da versão que LocalStack você está usando. As seções com guias a seguir descrevem cada processo LocalStack de configuração.

**nota**  
LocalStack tokens de autenticação são necessários para as versões gratuitas e pagas do LocalStack. Para obter informações específicas sobre LocalStack preços, consulte o guia de preços [Escolha seu plano](https://www.localstack.cloud/pricing).

### LocalStack níveis gratuitos e pagos
<a name="free-paid"></a>

Há duas maneiras de configurar LocalStack.
+ No prompt de **configuração do VS Code LocalStack para começar**, escolha o botão **Configurar**.
+ Na barra de status do VS Code, escolha o ícone de LocalStack status para abrir o prompt **Configuração LocalStack para começar** e, em seguida, escolha o botão **Configuração**.

O sistema segue as estas etapas durante a configuração:

1. Instala a LocalStack CLI.

1. Verifica se você tem uma LocalStack conta.

1. Se você tiver uma LocalStack conta, o sistema o guiará pelo processo de autenticação em seu navegador padrão. Da mesma forma, se você não tiver uma LocalStack conta, o sistema orientará você na configuração da conta antes do processo de autenticação.

Depois de configurado, o LocalStack status LocalStack é atualizado na barra de status do VS Code.

**nota**  
Se você não criou um AWS perfil para LocalStack, um novo será criado automaticamente para você como parte do processo de LocalStack configuração.

### LocalStack Comunidade
<a name="community"></a>

A edição Community do LocalStack é gratuita e não exige que você se inscreva em uma conta, ela é executada a partir de uma imagem do Docker que não requer uma licença. Para obter detalhes adicionais sobre a LocalStack Community Edition, consulte a documentação de [imagens da LocalStack comunidade](https://docs.localstack.cloud/references/docker-images/). As seções a seguir descrevem os pré-requisitos e a configuração básica necessária para trabalhar com a edição LocalStack comunitária no VS Code.

**Iniciar uma nova instância**

 Para iniciar uma nova instância do LocalStack Community, conclua o procedimento a seguir. 

**nota**  
O exemplo a seguir inicia uma instância de contêiner LocalStack na porta 4566. Se você especificar valores de porta diferentes, deverá atualizar o valor da porta especificado no procedimento localizado na seção *Configurando o AWS kit AWS CLI de ferramentas*.

1. No VS Code, abra o terminal do VS Code pressionando **ctrl \$1 `(backtick)**.

1. Digite o seguinte no terminal.

   **Mac:**

   ```
   docker run -d --name localstack_main \
   >> -p 4566:4566 \
   >> -v /var/run/docker.sock:/var/run/docker.sock \
   >> localstack/localstack
   ```

   **Windows:**

   ```
   docker run -d --name localstack_main `
   >> -p 4566:4566 `
   >> -v /var/run/docker.sock:/var/run/docker.sock `
   >> localstack/localstack
   ```

1. O terminal será atualizado com o status da instância do Docker quando o processo for concluído.

Essa instância em contêiner do LocalStack fornece acesso aos AWS serviços que você especificou durante o processo de download.

**Configurando a CLI LocalStack para o Docker.**

 Para configurar o AWS CLI e o AWS Toolkit para trabalhar LocalStack no Docker, configure um novo perfil concluindo as seguintes etapas: 

1. No VS Code, abra o terminal do VS Code pressionando **ctrl \$1 `(backtick)**.

1. Digite o seguinte no terminal.

   ```
   ~/.aws/credentials
   [localstack]
   aws_access_key_id = test
   aws_secret_access_key = test
   ~/.aws/config
   [profile localstack]
   region = us-east-1
   output = json
   endpoint_url = http://localhost:4566 [default localstack endpoint]
   ```

1. O AWS kit de ferramentas detecta seu LocalStack perfil e atualiza o menu de status da conexão.

Após a configuração, escolher seu LocalStack perfil na seção de AWS perfil da barra de status torna seus LocalStack recursos visíveis no AWS explorador. Além disso, você pode visualizar seus LocalStack registros na guia **Saída** do terminal VS Code.

## Começando LocalStack no VS Code
<a name="w2aac17c43c17c13"></a>

Você pode começar a LocalStack usar qualquer um dos seguintes métodos:

**Começando LocalStack pela barra de status do VS Code**

1. No VS Code, navegue até a barra de status e escolha o LocalStack botão **Iniciar** para iniciar LocalStack.

1. A barra de status do VS Code é atualizada quando é LocalStack iniciada com sucesso.

**Começando LocalStack pela **paleta de comandos** do VS Code**

1. No VS Code, abra a **Paleta de comandos** pressionando **Cmd \$1 Shift \$1 P** (Mac) ou **Control \$1 Shift \$1 P** (Windows).

1. Na **Paleta de Comandos**, insira **Start LocalStack** na barra de pesquisa e escolha-a na lista quando ela for preenchida nos resultados.

1. A barra de status do VS Code é atualizada quando é LocalStack iniciada com sucesso.

**A LocalStack partir do terminal VS Code**

1. No VS Code, abra o terminal do VS Code pressionando **ctrl \$1 `(backtick)**.

1. No terminal do VS Code, insira o comando **localstack start** da CLI.

1. A barra de status do VS Code é atualizada quando é LocalStack iniciada com sucesso.

## Criando um exemplo de aplicativo sem servidor
<a name="serverless"></a>

 Para começar a trabalhar com LocalStack o VS Code, você precisa de um exemplo de aplicativo sem servidor. Se você já tem um aplicativo existente em sua AWS conta, pode implantá-lo localmente usando LocalStack ou criar um novo aplicativo com o AWS Serverless Land.

Para saber mais sobre como criar uma aplicação com o Serverless Land no AWS Toolkit, consulte o tópico [Trabalhar com o AWS Serverless Land](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/serverlessland-overview.html) neste guia do usuário. Para obter informações detalhadas sobre o Serverless Land, consulte a página inicial principal do aplicativo web [Serverless Land](https://serverlessland.com/).

## Testando e depurando funções do Lambda com LocalStack
<a name="test-debug"></a>

Testar e depurar suas funções do Lambda na extensão LocalStack VS Code é semelhante a trabalhar com suas funções implantadas na nuvem. AWS A principal diferença é que sua instância do AWS Toolkit deve ser autenticada com sua LocalStack conta para implantar e depurar suas funções. LocalStack

**nota**  
Os recursos de teste e depuração descritos nesta seção não estão disponíveis para LocalStack a Community Edition.  
Para trabalhar com o LocalStack VS Code, conecte-se ao seu LocalStack perfil no AWS Toolkit. Quando seu LocalStack perfil está ativo, a barra de status do VS Code mostra **AWS: profile:localstack (endpoint personalizado)** com uma marca de seleção.

Para obter informações detalhadas sobre como trabalhar com suas funções do Lambda no AWS kit de ferramentas, consulte o tópico [Trabalhando com AWS Lambda funções](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/remote-lambda.html) neste guia do usuário.

# AWS Lambda depuração remota
<a name="lambda-remote-debug"></a>

 AWS Toolkit for Visual Studio Code Isso permite que você depure suas AWS Lambda funções que estão sendo executadas na nuvem, diretamente no VS Code. Com a depuração AWS Lambda remota, você pode inspecionar funções em execução, definir pontos de interrupção, examinar variáveis e depurar detalhadamente sem modificar o fluxo de trabalho de desenvolvimento existente.

As seções a seguir descrevem como trabalhar com a depuração remota do Lambda no AWS Toolkit for Visual Studio Code.

## Como funciona a depuração remota Lambda
<a name="w2aac17c43c19b7"></a>

O AWS kit de ferramentas permite a depuração remota modificando temporariamente suas funções do Lambda com uma camada adicional de depuração do Lambda e estendendo o limite de tempo limite de invocação do Lambda para 900 segundos. Uma conexão segura é estabelecida entre seu depurador local e o ambiente de execução do Lambda usando o AWS IoT Secure Tunneling. Essa conexão possibilita que você os seus pontos de interrupção de código local para percorrer a função enquanto ela é executada remotamente. Depois que a sessão de depuração for concluída, todas as modificações temporárias serão automaticamente revertidas para as configurações originais.

## Conceitos básicos
<a name="w2aac17c43c19b9"></a>

### Tempos de execução compatíveis
<a name="w2aac17c43c19b9b3"></a>

A depuração remota é compatível com os seguintes tempos de execução:
+ Python (Amazon Linux 2023)
+ Java
+ Typescript/JavaScript/Node.js (Amazon Linux 2023)

**nota**  
As instâncias gerenciadas do Lambda e os tipos de função de imagem OCI não são compatíveis com a depuração remota do Lambda.

### Pré-requisitos
<a name="w2aac17c43c19b9b5"></a>

Antes de começar, certifique-se de que os seguintes pré-requisitos sejam atendidos.
+ Você deve ter AWS credenciais válidas configuradas no AWS Toolkit. Para obter detalhes adicionais sobre como instalar o AWS Toolkit e configurar suas credenciais, consulte o tópico [Introdução](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/setting-up.html) neste guia do usuário. 
+ Uma função Lambda foi implantada em sua conta. AWS Para obter detalhes sobre a implantação de uma função do Lambda, consulte o tópico [Criar sua primeira função do Lambda](https://docs.aws.amazon.com//lambda/latest/dg/getting-started.html) no Guia do desenvolvedor *AWS Lambda*.
+ Você deve ter a política e as permissões apropriadas AWS Identity and Access Management (IAM) para depurar sua função. Para obter detalhes adicionais sobre as permissões do Lambda, consulte as [políticas AWS gerenciadas do AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/security-iam-awsmanpol.html) no Guia do desenvolvedor *AWS Lambda*. Veja a seguir um exemplo de política que contém as permissões mínimas necessárias para trabalhar com a depuração remota do Lambda no AWS Toolkit.
**nota**  
A depuração remota é habilitada por meio AWS AWS IoT do Secure Tunneling. Isso permite que seu depurador local estabeleça uma conexão segura com o ambiente de execução do Lambda.

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "lambda:ListFunctions",
          "lambda:GetFunction",
          "lambda:GetFunctionConfiguration",
          "lambda:GetLayerVersion",
          "lambda:UpdateFunctionConfiguration",
          "lambda:InvokeFunction",
          "lambda:PublishVersion",
          "lambda:DeleteFunction",
          "iot:OpenTunnel",
          "iot:RotateTunnelAccessToken",
          "iot:ListTunnels"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

## Acessar depuração remota do Lambda
<a name="w2aac17c43c19c11"></a>

Há dois caminhos principais para acessar a depuração remota do Lambda no AWS kit de ferramentas: o explorador ou o AWS explorador do Application Builder. No AWS explorador, você pode acessar a depuração remota do Lambda por meio de seus nós. AWS Lambda No explorador do Application Builder, é possível acessar a depuração remota do Lambda por meio de seus projetos locais AWS SAM .

**Acessando a depuração remota do Lambda a partir do explorador AWS**

1. No VS Code, abra a extensão AWS Toolkit.

1. No AWS Kit de ferramentas, expanda o AWS explorador.

1. No Explorer, expanda o nó **Lambda**.

1. Acesse a função que você deseja depurar e escolha o ícone **Invocar remotamente** no menu de contexto para abrir a tela de configuração de **invocação remota**.

**Acessando a depuração remota do Lambda a partir do explorador do Application Builder.**

1. No VS Code, abra a extensão AWS Toolkit.

1. No AWS Kit de ferramentas, expanda o explorador do construtor de aplicativos.

1. No explorador, expanda o projeto `AWS SAM` que contém o projeto Lambda que você deseja depurar.

1. Expanda a função `Lambda` implantada que você deseja depurar.

1. Navegue até a função remota e escolha o ícone **Invocar remotamente** no menu de contexto para abrir a tela de configuração de **Invocação remota**.

## Como trabalhar com depuração remota do Lambda
<a name="w2aac17c43c19c13"></a>

As seções a seguir descrevem como trabalhar com a depuração remota do Lambda no AWS Toolkit for Visual Studio Code.

**nota**  
As funções do Lambda têm um limite de 5 camadas combinado de 250 MB para o código da função e todas as camadas anexadas. A depuração remota Lambda requer pelo menos 1 camada livre para ser executada.

### Como configurar uma sessão de depuração
<a name="w2aac17c43c19c13b7"></a>

Antes de começar, configure sua sessão de depuração concluindo o procedimento a seguir.

1. Abra o menu de **configuração de invocação remota** concluindo o procedimento *Acessando a depuração remota do Lambda a partir do AWS explorador ou o procedimento Acessando a depuração* *remota do Lambda a partir do explorador do Application Builder, localizado na seção anterior*.

1. No menu **Configuração de invocação remota**, marque a caixa de seleção **Depuração remota** para exibir as propriedades de depuração remota.

1. Especifique o **Caminho raiz local** para seu arquivo manipulador local.
**nota**  
O caminho raiz local é a localização do seu código-fonte que corresponde à função do Lambda implantada. Se você estiver trabalhando em uma função implantada no explorador do Application Builder, seu caminho raiz local será detectado automaticamente.  
Se você não tiver o código-fonte armazenado localmente, escolha o botão **Baixar código remoto** para recuperar o código-fonte da função do Lambda. Isso abrirá o seu `handler file` no editor de código do VS Code.

1. Na seção **Carga útil**, especifique onde os dados do evento de teste são obtidos.

### Definir pontos de interrupção e depuração
<a name="w2aac17c43c19c13b9"></a>

Defina pontos de interrupção e comece a depuração concluindo o procedimento a seguir.

1. No `handler file` no editor de código do VS Code, clique na margem da medianiz para definir pontos de interrupção nos números das linhas em que você deseja pausar a depuração.

1. Quando estiver satisfeito com os pontos de interrupção, retorne ao menu **Configuração de invocação remota** para verificar se as configurações estão definidas corretamente e escolha o botão **Invocação remota** para iniciar a depuração.

1. O AWS kit de ferramentas atualiza sua função Lambda com recursos de depuração, estabelece um túnel seguro para a sessão de depuração, invoca sua função com a carga especificada e, em seguida, pausa o processo quando ele atinge um ponto de interrupção.

1. Em uma pausa no ponto de interrupção, use o painel **RUN AND DEBUG** para visualizar suas **VARIÁVEIS**, **PILHA DE CHAMADAS** e **PONTOS DE INTERRUPÇÃO**.

### Como atualizar e testar sua função
<a name="w2aac17c43c19c13c11"></a>

Para modificar seu código e testar alterações com uma implantação rápida, conclua o procedimento a seguir.

1. Com sua sessão de depuração ativa, faça alterações no seu `handler file` no editor de código do VS Code.

1. Salve as alterações (**Command\$1S on macOS**,**Ctrl\$1S on Windows**)

1. Quando solicitado, confirme que você deseja continuar com a implantação das alterações. O AWS kit de ferramentas atualizará sua função Lambda com o código modificado.

1. Continue depurando e testando suas alterações ao definir novos pontos de interrupção e selecionando o botão **Invocação remota** novamente.
**nota**  
 Como alternativa, você pode desmarcar a opção **Anexar depurador nos controles de depuração** do VS Code e escolher o botão **Invocação remota** para executar sua função sem depuração.

### Encerrar uma sessão de depuração
<a name="w2aac17c43c19c13c13"></a>

Cada uma das opções a seguir encerra a sessão de depuração remota e remove a camada de depuração do projeto.
+ Escolher **Remover Configuração de Depuração** na tela de **Configuração de invocação remota**.
+ Selecionar o ícone de **Desconectar** nos controles de depuração do VS Code.
+ Fechar o `handler file` no editor do VS Code.

**nota**  
Observe o seguinte:  
A camada de depuração do Lamba é removida automaticamente após 60 segundos de inatividade. A contagem começa quando sua última invocação é concluída.
Se você fez alterações de código em suas funções gerenciadas infrastructure-as-code (IaC) (AWS SAM, AWS CDK, Terraform) durante o processo de depuração, salve-as em seu projeto local e considere atualizar seu repositório de controle de origem. As alterações não salvas são sobrescritas quando sua função IaC é reimplantada.
Se você fez alterações temporárias apenas para fins de depuração, talvez queira reimplantar a função a partir do controle de origem para garantir que ela corresponda ao código de produção.

### Depuração de funções do TypeScript Lambda com mapas de origem
<a name="typescript-source-maps"></a>

As seções a seguir descrevem como depurar suas funções do TypeScript Lambda com mapas de origem.

#### Pré-requisitos
<a name="w2aac17c43c19c13c15b5"></a>

Para depurar suas funções do TypeScript Lambda, os seguintes pré-requisitos devem ser atendidos.
+ Você TypeScript deve ser compilado com a opção de mapa de origem ativada. Para obter informações adicionais, consulte o tópico de [suporte do mapa de JavaScript origem](https://code.visualstudio.com/docs/typescript/typescript-debugging#_javascript-source-map-support) na documentação do VS Code.
+ Não há suporte para mapas de origem em linha. Você deve usar um `.js.map` arquivo separado para armazenar o mapa de origem.

#### Configuração
<a name="w2aac17c43c19c13c15b7"></a>

Para configurar a depuração remota do Lambda para funções do TypeScript Lambda no kit de ferramentas, conclua as etapas AWS a seguir.

1. No AWS Kit de ferramentas, expanda o AWS explorador.

1. No Explorer, expanda o nó **Lambda**.

1. Navegue até a função para a qual você deseja configurar e escolha o ícone **Invocar remotamente** no menu de contexto para abrir a tela de configuração de **invocação remota**. TypeScript

1. Ative a depuração remota marcando a caixa de seleção **Depuração remota**.

1. Configure seu **Caminho raiz local** apontando para o diretório que contém seu `TypeScript handler file`.
**nota**  
O `TypeScript handler file` é onde você define seus pontos de interrupção de depuração.

1. Expanda as **Configurações adicionais de depuração remota**.

1. Ative o mapeamento de origem marcando a caixa de seleção **Mapa de origem**.

1. Defina o campo **Arquivos de saída** para o diretório local da cópia da função do Lambda.  
**Example**  

   Se `app.js` e `app.map` estiverem dentro de `.aws-sam/build/HelloWorldFunction`, defina a localização `/Users/user/project/aws-sam/build/HelloWorldFunction/*` dos **Arquivos de saída**.
**nota**  
O caminho do **Arquivo de saída** deve ser um caminho absoluto.  
Para AWS CDK projetos AWS SAM e projetos, o AWS Toolkit oferece suporte à detecção automática de mapas de origem. Se o campo **Arquivos de saída** for deixado vazio para esses projetos, o kit de ferramentas tentará detectar automaticamente a localização do mapa de origem.

1. Quando estiver satisfeito com as configurações, escolha o botão **Invocação remota** para começar a depurar sua função. TypeScript 

## Solução de problemas e casos de uso avançados
<a name="troubleshooting"></a>

Se sua sessão de depuração falhar, inicie o processo de solução de problemas concluindo estas etapas.

1. Atualize o AWS kit de ferramentas para a versão mais recente.

1. Atualize a visualização da web fechando e reabrindo a **Configuração de invocação remota**.

1. Reinicie o VS Code fechando-o completamente e reabrindo-o.

1. Abra a paleta de comandos do VS Code e insira o comando **AWS: Reset Lambda Remote Debugging Snapshot**, selecione-o quando ele for preenchido nos resultados para redefinir seu instantâneo de depuração remota do Lambda.

1. Se você não conseguir solucionar o problema, envie um problema para [AWS Toolkit for Visual Studio Code GitHubProblemas](https://github.com/aws/aws-toolkit-vscode/issues).

### Caso de uso avançado: configuração de assinatura de código
<a name="troubleshooting-code-signing-configuration"></a>

A depuração remota exige anexar uma camada de depuração à sua função do Lambda. Se sua função tiver a configuração de assinatura de código ativada e aplicada, o AWS Toolkit não poderá anexar automaticamente a camada de depuração à sua função.

Há duas opções para resolver o problema de configuração da assinatura de código:
+ Remover temporariamente a assinatura de código.
+ Usar uma camada de depuração assinada.

#### Como remover temporariamente a assinatura de código
<a name="troubleshooting-code-signing-configuration-temp-remove"></a>

Atualize a configuração de assinatura de código por meio da configuração `UntrustedArtifactOnDeployment : Warn`. Em seguida, reative-a `Enforced` após a conclusão do processo de depuração.

Para obter mais informações, consulte a [UpdateCodeSigningConfig](https://docs.aws.amazon.com//lambda/latest/api/API_UpdateCodeSigningConfig.html)referência na *Referência AWS Lambda da API*.

#### Usando uma camada de depuração assinada
<a name="troubleshooting-code-signing-configuration-signed-debug-layer"></a>

1. **Em Depuração remota Lambda no AWS Toolkit, expanda a seção de configuração adicional de depuração remota.**

1. Na seção **Configuração adicional de depuração remota**, copie o ARN da camada de região do campo **Substituição de camada**.

1. A partir do AWS CLI, use o comando a seguir para baixar a versão da camada`aws lambda get-layer-version-by-arn --arn layer-arn`, substituindo *layer-arn pelo ARN* da sua camada. *Para obter instruções detalhadas sobre como baixar a camada de depuração assinada, consulte a referência [get-layer-version-by-arn](https://docs.aws.amazon.com/cli/latest/reference/lambda/get-layer-version-by-arn.html) na Referência de Comandos.AWS CLI *

1. Assine a camada com sua configuração de assinatura de código e publique-a em sua conta. Para obter orientação sobre assinatura e publicação, consulte o tópico [Configurar assinatura de código para seu AWS SAM aplicativo](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/authoring-codesigning.html) no *Guia do AWS Serverless Application Model desenvolvedor*.

1. Depois que a camada for assinada e publicada em sua conta, retorne à seção de **Configuração adicional de depuração remota** do Lambda e insira o novo ARN da camada no campo **Substituição de camada**. Quando o processo estiver concluído, a depuração remota do Lambda usará sua camada assinada em vez da camada padrão.

### Caso de uso avançado: funções de depuração com SnapStart ou provisionada simultaneidade
<a name="troubleshooting-snapstart-provisioned-concurrency"></a>

Para funções Lambda configuradas SnapStart ou provisionadas com simultaneidade, a publicação de uma nova versão leva muito mais tempo. Para acelerar seu fluxo de trabalho de depuração, você pode configurar a depuração remota do Lambda para atualizar somente a versão da sua função em vez de publicar uma `$LATEST` nova versão.

1. Na tela de **configuração de invocação remota**, expanda as **configurações adicionais de depuração remota**.

1. Desmarque a opção **Publicar versão**.

1. Agora, o AWS Toolkit só atualizará a `$LATEST` versão da sua função e depurará usando-a.

**nota**  
Como efeito colateral da depuração com a `$LATEST` versão, você deve evitar outro tráfego que possa invocar sua `$LATEST` versão para garantir um ambiente de depuração sem interrupções.

### Regiões compatíveis
<a name="troubleshooting-regions"></a>

O erro a seguir ocorre quando uma região não oferece suporte à depuração remota.

```
Region ${region} doesn't support remote debugging yet
```

Veja a seguir uma lista de regiões com suporte.
+ ap-east-1
+ ap-northeast-1
+ ap-northeast-2
+ ap-south-1
+ ap-southeast-1
+ ap-southeast-2
+ ca-central-1
+ eu-central-1
+ eu-north-1
+ eu-west-1
+ eu-west-2
+ eu-west-3
+ me-central-1
+ me-south-1
+ sa-east-1
+ us-east-1
+ us-east-2
+ us-west-1
+ us-west-2

### Lambda RequestEntityTooLargeException
<a name="troubleshooting-storage-limit"></a>

As funções do Lambda têm um limite de 5 camadas combinado de 250 MB para o código da função e todas as camadas anexadas. A camada de depuração remota tem aproximadamente 40 MB, o que pode fazer com que a função exceda esse limite se você tiver um pacote de funções grande ou várias camadas. Para obter detalhes adicionais, consulte a seção [Lambda: InvalidParameterValueException ou RequestEntityTooLargeException](https://docs.aws.amazon.com//lambda/latest/dg/troubleshooting-deployment.html#troubleshooting-deployment-InvalidParameterValueException1) tópico no Guia do *AWS Lambda desenvolvedor*.

A lista a seguir descreve maneiras de solucionar e corrigir esse erro.
+ **Reduzir o tamanho da função**: otimize seu código de função e remova dependências desnecessárias.
+ **Remover as camadas não utilizadas**: remova temporariamente as camadas não essenciais durante a depuração.
+ **Usar dependências externas**: mova dependências grandes para armazenamento externo, como o Amazon S3, e carregue-as em tempo de execução.

### Solução de problemas de depuração Java
<a name="troubleshooting-java-debugging"></a>

Para depurar uma função Java Lambda, você deve ter a mesma versão Java instalada localmente que corresponda à versão de tempo de execução da função Lambda.

Por exemplo, ao depurar uma função Java 25, você deve ter o Java 25 instalado no ambiente local em que o AWS Toolkit está sendo executado. Se você tentar depurar uma função Java 25 com o Java 21 ou uma versão anterior instalada localmente, a depuração remota não será capaz de parar nos pontos de interrupção definidos.

Certifique-se de que sua versão local do Java corresponda à versão de tempo de execução da função Lambda antes de iniciar uma sessão de depuração.

### A cota de tunelamento seguro de IoT foi excedida
<a name="troubleshooting-tunnel-quota"></a>

Veja a seguir um exemplo do *erro de cota de túnel excedida* que ocorre quando você atinge o limite diário de conexões AWS IoT seguras de tunelamento na depuração remota Lambda.

```
Error creating/reusing tunnel: LimitExceededException: Exceeded quota of Lambda debugging tunnels
```

AWS IoT A conexão de tunelamento seguro tem as seguintes cotas:
+ O tunelamento seguro de IoT de nível gratuito tem 10 conexões por dia.
+ Cada túnel oferece suporte a uma instância do VS Code por até 12 horas.
+ A cota se aplica por AWS conta, por dia.

Se você encontrar o erro de tunelamento AWS IoT seguro, aguarde a redefinição diária da cota ou entre em contato com o AWS suporte para solicitar um aumento do limite de cota. Para obter informações de contato de AWS suporte, consulte o [portal de contato de AWS suporte](https://aws.amazon.com/contact-us/). *Para obter informações detalhadas sobre tunelamento AWS IoT seguro, consulte o tópico sobre [tunelamento AWS IoT seguro](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html) no Guia do desenvolvedor.AWS IoT *