

# Como trabalhar com o AWS Lambda no AWS Toolkit for JetBrains
<a name="building-lambda"></a>

Os tópicos a seguir descrevem como usar as funções do AWS Lambda no AWS Toolkit for JetBrains.

**Topics**
+ [Runtimes do Lambda](lambda-runtimes.md)
+ [Criar uma função do](create-new-lambda.md)
+ [Como executar (invocar) ou depurar uma função local](invoke-lambda.md)
+ [Como executar (invocar) uma função remota](lambda-remote.md)
+ [Como alterar (atualizar) as configurações de função](lambda-update.md)
+ [Como excluir uma função](lambda-delete.md)

# Runtimes do AWS Lambda e suporte no AWS Toolkit for JetBrains
<a name="lambda-runtimes"></a>

O AWS Lambda oferece compatibilidade com várias linguagens por meio do uso de tempos de execução. Um runtime fornece um ambiente específico da linguagem que retransmite eventos de invocação, informações de contexto e respostas entre o Lambda e a função. Para obter informações detalhadas sobre o serviço do Lambda e os runtimes compatíveis, consulte o tópico [Runtimes do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy) no *Guia do usuário do AWS Lambda*.

A seguir, descrevemos os ambientes de runtime que atualmente são compatíveis para uso com o AWS Toolkit for JetBrains.


| Name (Nome) | Identifier | Sistema operacional | Arquitetura | 
| --- | --- | --- | --- | 
|  Node.js 18  |  nodejs18.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Node.js 16  |  nodejs16.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Node.js 14  |  nodejs14.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.11  |  python3.11  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.10  |  python3.10  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.9  |  python3.9  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.8  |  python3.8  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.7  |  python3.7  |  Amazon Linux 2  |  x86\$164  | 
|  Java 17  |  java17  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 11  |  java11  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 8  |  java8.al2  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 8  |  java8  |  Amazon Linux 2  |  x86\$164  | 
|  .NET 6  |  dotnet6  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Go 1.x  |  go1.x  |  Amazon Linux 2  |  x86\$164  | 

# Como criar uma função do AWS Lambda usando o AWS Toolkit for JetBrains
<a name="create-new-lambda"></a>

Você pode usar o AWS Toolkit for JetBrains para criar uma função do AWS Lambda que faz parte de um aplicativo sem servidor da AWS. Você também pode criar uma função do Lambda independente.

Para criar uma função do Lambda que faz parte de uma aplicação sem servidor da AWS, ignore o restante deste tópico e, em vez disso, consulte [Criar um aplicativo](deploy-serverless-app.md).

Para criar uma função do Lambda independente, primeiro é necessário instalar o AWS Toolkit for JetBrains e, se ainda não tiver feito isso, conectar a uma conta da AWS pela primeira vez. Em seguida, com o IntelliJ IDEA, o PyCharm, o WebStorm ou o JetBrains Rider já em execução, faça o seguinte:
+ Abra o AWS Explorer, se ainda não estiver aberto. Se precisar alternar para uma outra região da AWS a fim de criar a função, faça isso agora. Depois, clique com o botão direito do mouse em **Lambda** e escolha **Criar novo AWS Lambda**.  
![\[Como criar uma função do AWS Lambda iniciando no Explorador da AWS\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/lambda-create-aws-explorer.png)

  Preencha a caixa de diálogo [Create Function (Criar função)](create-function-dialog.md) e escolha **Create Function (Criar função**. O AWS Toolkit for JetBrains cria uma pilha do AWS CloudFormation correspondente para a implantação e adiciona o nome da função à lista do **Lambda** no **Explorador da AWS**. Se a implantação falhar, você pode tentar descobrir o porquê visualizando os logs de eventos da pilha.
+ Crie um arquivo de código que implementa um manipulador de funções para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) ou [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html). 

  Se precisar alternar para outra região da AWS a fim de criar a função remota a ser executada (invocar), faça-o agora. Em seguida, no arquivo de código, escolha o ícone do **Lambda** no medianiz ao lado do manipulador de função e escolha **Criar novo AWS Lambda**. Preencha a caixa de diálogo [Create Function (Criar função)](create-function-dialog.md) e escolha **Create Function (Criar função**.  
![\[Como criar uma função do AWS Lambda iniciando em um manipulador de funções existente em um arquivo de código\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/lambda-create-code-file.png)
**nota**  
Se o ícone do **Lambda** não for exibido na medianiz ao lado do manipulador de função, tente exibi-lo para o projeto atual selecionando a seguinte caixa em **Configurações** ou **Preferências**: **Ferramentas**, **AWS**, **Configurações do projeto**, **Mostrar ícones da medianiz para todos os potenciais manipuladores do AWS Lambda**. Além disso, se o manipulador de funções já estiver definido no modelo de AWS SAM correspondente, o comando **Create new AWS Lambda (Criar novo Lambda)** não será exibido.

  Depois de escolher **Criar função**, o AWS Toolkit for JetBrains cria uma função correspondente no serviço do Lambda para a conta conectada da AWS. Se a operação for bem-sucedida, depois de atualizar o **Explorador da AWS**, a lista do **Lambda** exibirá o nome da nova função.
+ Se você já tiver um projeto que contém uma função do AWS Lambda e precisar, primeiro, alternar para uma outra região da AWS para criar a função, faça isso agora. Depois, no arquivo de código que contém o manipulador de função para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) ou [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), escolha o ícone do **Lambda** na medianiz ao lado do manipulador de função. Escolha **Create new AWS Lambda (Criar novo Lambda)**, preencha a caixa de diálogo [Create Function (Criar função)](create-function-dialog.md) e escolha **Create Function (Criar função**.  
![\[Como criar uma função do AWS Lambda iniciando em um manipulador de funções existente em um arquivo de código\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/lambda-create-code-file.png)
**nota**  
Se o ícone do **Lambda** não for exibido na medianiz ao lado do manipulador de função, tente exibi-lo para o projeto atual selecionando a seguinte caixa em **Configurações** ou **Preferências**: **Ferramentas**, **AWS**, **Configurações do projeto**, **Mostrar ícones da medianiz para todos os potenciais manipuladores do AWS Lambda**. Além disso, o comando **Criar novo AWS Lambda** não será exibido se o manipulador de função já estiver definido no modelo AWS SAM correspondente.

  Depois de escolher **Criar função**, o AWS Toolkit for JetBrains cria uma função correspondente no serviço do Lambda para a conta conectada da AWS. Se a operação for bem-sucedida, depois de atualizar o **Explorador da AWS**, o nome da nova função aparecerá na lista do **Lambda**.

Depois de criar a função, você pode executar (chamar) ou depurar a versão local da função ou executar (chamar) a versão remota.

# Como executar (invocar) ou depurar o versionamento local de uma função do AWS Lambda usando o AWS Toolkit for JetBrains
<a name="invoke-lambda"></a>

Para concluir este procedimento, é necessário criar a função do AWS Lambda que deseja executar (invocar) ou depurar, se ainda não tiver sido criada.
**nota**  
Para executar (invocar) ou depurar o versionamento local de uma função do Lambda e executar (invocar) ou depurar essa função localmente com qualquer propriedade não padrão ou opcional, primeiro você deve definir essas propriedades no arquivo de modelo correspondente do AWS SAM da função (por exemplo, em um arquivo denominado `template.yaml` dentro do projeto). Para obter uma lista de propriedades disponíveis, consulte [AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) no repositório [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) no GitHub.

1. Faça um dos seguintes procedimentos:
   + No arquivo de código que contém o manipulador de função para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) ou [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), escolha o ícone do Lambda na medianiz ao lado do manipulador de função. Escolha **Run (Executar) '[Local]'** ou **Debug (Depurar) '[Local]'**.   
![\[Como executar ou depurar o versionamento local de uma função do Lambda iniciando pelo manipulador de função no arquivo de código\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/lambda-local-code.png)
   + Com a janela de ferramentas **Project (Projeto)** já aberta e exibindo o projeto que contém a função, abra o arquivo `template.yaml` do projeto. Escolha o ícone **Run (Executar)** no gutter ao lado da definição de recurso da função, e escolha **Run (Executar) '[Local]'** ou **Debug (Depurar) '[Local]'**.  
![\[Como executar ou depurar o versionamento local de uma função do Lambda iniciando pela definição de função no arquivo de modelo do AWS SAM\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/lambda-local-template.png)

1. Preencha a caixa de diálogo [Editar configuração (configurações de função local)](run-debug-configurations-dialog-local.md), se for exibida, e escolha **executar** ou **depurar**. Os resultados são exibidos na janela de ferramentas **Run (Executar)** ou **Debug (Depurar)** .
   + Se a caixa de diálogo **Editar configuração** não for exibida e você desejar alterar a configuração existente, primeiro altere sua configuração e depois repita esse procedimento do início. 
   + Se os detalhes de configuração estiverem ausentes, expanda **Templates (Modelos)**, **AWS Lambda** e, em seguida, escolha **Local**. Escolha **OK** e repita esse procedimento do início. 

# Como executar (invocar) o versionamento remoto de uma função do AWS Lambda usando o AWS Toolkit for JetBrains
<a name="lambda-remote"></a>

Um versionamento *Remoto* de uma função do AWS Lambda é uma função cujo código-fonte já existe dentro do serviço do Lambda para uma conta da AWS.

Para concluir este procedimento, primeiro é necessário instalar o AWS Toolkit for JetBrains e, se ainda não tiver feito, conectar-se pela primeira vez a uma conta da AWS. Em seguida, com o IntelliJ IDEA, o PyCharm, o WebStorm ou o JetBrains Rider em execução, faça o seguinte:

1. Abra o AWS Explorer, se ainda não estiver aberto. Se precisar alternar para uma outra região da AWS que contém a função, faça isso agora.

1. Expanda o **Lambda** e confirme se o nome da função está listado. Se estiver, vá para a etapa 3 deste procedimento.

   Se o nome da função não estiver listado, crie a função do Lambda que deseja executar (invocar). 

   Se você criou a função como parte de uma aplicação sem servidor da AWS, também será necessário implantar essa aplicação.

   Se você criou a função criando um arquivo de código que implementa um manipulador de função para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) ou [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), então, no arquivo de código, escolha o ícone do Lambda ao lado do manipulador de função. Em seguida, selecione **Create new AWS Lambda (Criar novo Lambda)**. Preencha a caixa de diálogo [Create Function (Criar função)](create-function-dialog.md) e escolha **Create Function (Criar função**.

1. Com o **Lambda** aberto no **Explorador da AWS**, clique com o botão direito do mouse no nome da função e escolha **Executar “[remoto]”**.  
![\[Como executar o versionamento remoto de uma função do Lambda iniciando pelo Explorador da AWS\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/lambda-remote.png)

1. Preencha a caixa de diálogo [Editar configuração (configurações de função remota )](run-debug-configurations-dialog-remote.md), se for exibida, e escolha **Executar** ou **Depurar**. Os resultados são exibidos na janela de ferramentas **Run (Executar)** ou **Debug (Depurar)** .
   + Se a caixa de diálogo **Editar configuração** não for exibida e você desejar alterar a configuração existente, primeiro altere sua configuração e depois repita esse procedimento do início. 
   + Se os detalhes de configuração estiverem ausentes, expanda **Templates (Modelos)**, **AWS Lambda** e, em seguida, escolha **Local**. Escolha **OK** e repita esse procedimento do início. 

# Como alterar (atualizar) as configurações de função do AWS Lambda usando o AWS Toolkit for JetBrains
<a name="lambda-update"></a>

Para usar o AWS Toolkit for JetBrains para alterar (atualizar) as configurações de uma função do AWS Lambda, execute um dos procedimentos a seguir.
+ Com o arquivo de código aberto que contém o manipulador de funções para [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) ou [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), escolha, no menu principal, **Run (Executar)**, **Edit Configurations (Editar configurações)**. Preencha a caixa de diálogo [Run/Debug Configurations (Executar/depurar configurações)](run-debug-configurations-dialog.md) e escolha **OK**.
+ Abra o AWS Explorer, se ainda não estiver aberto. Se precisar alternar para uma outra região da AWS que contém a função, faça isso agora. Expanda o **Lambda**, escolha o nome da função para a qual a configuração será alterada e, em seguida, execute um dos seguintes procedimentos:
  + **Modificar configurações, como tempo limite, memória, variáveis de ambiente e perfil de execução**. Clique com o botão direito do mouse no nome da função e escolha **Atualizar configuração da função**.  
![\[Escolher o comando Update Function Configuration (Atualizar configuração da função)\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/update-function-configuration.png)

    Preencha a caixa de diálogo [Update Configuration (Atualizar configuração)](update-configuration-dialog.md) e, a seguir, escolha **Update (Atualizar)**. 
  + **Modificar configurações, como a carga útil de entrada**. No menu principal, escolha **Executar**, **Editar configurações**. Preencha a caixa de diálogo [Run/Debug Configurations (Executar/depurar configurações)](run-debug-configurations-dialog.md) e escolha **OK**.  
![\[Escolher o comando Edit Configurations (Editar configurações)\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/edit-configurations.png)

    Se os detalhes de configuração estiverem ausentes, primeiro expanda **Templates (Modelos)**, **AWS Lambda** e, em seguida, escolha **Local** (para a versão local da função) ou **Remote (Remoto)** (para a versão remota dessa mesma função). Escolha **OK** e repita este procedimento desde o início.
  + **Modificar configurações, como o nome do manipulador de função ou o bucket de origem do Amazon Simple Storage Service (Amazon S3)**. Clique com o botão direito do mouse no nome da função e escolha **Atualizar código de função**.  
![\[Escolher o comando Update Function Code (Atualizar código de função)\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/update-function-code.png)

    Preencha a caixa de diálogo [Update Code (Atualizar código)](update-code-dialog.md) e escolha **Update (Atualizar)**.
  + **Alterar outras configurações de propriedade disponíveis que não estão listadas nos marcadores anteriores**. Altere essas configurações no arquivo modelo do AWS SAM correspondente da função (por exemplo, em um arquivo denominado `template.yaml` dentro do projeto). 

    Para obter uma lista de configurações de propriedade disponíveis, consulte [AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) no repositório [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) no GitHub. 

# Como excluir uma função do AWS Lambda usando o AWS Toolkit for JetBrains
<a name="lambda-delete"></a>

Você pode usar o AWS Toolkit para excluir uma função do AWS Lambda que faz parte de uma aplicação sem servidor da AWS ou excluir uma função do Lambda independente.

Para excluir uma função do Lambda que faz parte de uma aplicação sem servidor da AWS, ignore o restante deste tópico e, em vez disso, consulte [Como excluir uma aplicação](sam-delete.md).

Para excluir uma função do Lambda independente, faça o seguinte:

1. Abra o AWS Explorer, se ainda não estiver aberto. Se precisar alternar para uma outra região da AWS que contém a função, faça isso agora.

1. Expanda o **Lambda**.

1. Clique com o botão direito do mouse no nome da função a ser excluída e, a seguir, escolha **Delete Function (Excluir função)**.  
![\[Escolher o comando Delete Function (Deletar função)\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/lambda-delete.png)

1. Insira o nome da função para confirmar a exclusão e, a seguir, escolha **OK**. Se a exclusão da função for bem-sucedida, o AWS Toolkit for JetBrains remove o nome da função da lista do **Lambda**.