

# Como trabalhar com aplicações sem servidor da AWS usando o AWS Toolkit for JetBrains
<a name="sam"></a>

Os tópicos a seguir descrevem como usar o AWS Toolkit for JetBrains para trabalhar com aplicativos sem servidor da AWS em uma conta da AWS.

**Topics**
+ [Criar um aplicativo](deploy-serverless-app.md)
+ [Como sincronizar uma aplicação](sam-sync.md)
+ [Como alterar (atualizar) configurações de aplicação](sam-update.md)
+ [Como excluir uma aplicação](sam-delete.md)

# Como criar uma aplicação sem servidor da AWS usando o AWS Toolkit for JetBrains
<a name="deploy-serverless-app"></a>

Para concluir este procedimento, primeiro é necessário instalar o AWS Toolkit e, se ainda não tiver feito, conectar-se pela primeira vez a uma conta da AWS. Depois, com o IntelliJ IDEA, o PyCharm, o WebStorm ou o JetBrains Rider já em execução, faça o procedimento a seguir."?>

1. Com o IntelliJ IDEA, o PyCharm, o WebStorm ou o JetBrains Rider já em execução, siga um destes procedimentos:
   + Para o IntelliJ IDEA ou o WebStorm, escolha **Arquivo**, **Novo**, **Projeto**.
   + Para o PyCharm, escolha **Arquivo**, **Novo projeto**.
   + Para o JetBrains Rider, escolha **Arquivo**, **Novo**, para uma nova solução. Ou clique com o botão direito do mouse em uma solução existente na janela de ferramentas **Explorer** e escolha **Add (Adicionar)**, **New Project (Novo projeto)**.

1. Para o IntelliJ IDEA, escolha **AWS**, **Aplicação sem servidor da AWS** e, em seguida, escolha **Próximo**.  
![\[Como escolher criar uma aplicação sem servidor da AWS no IntelliJ IDEA\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/sam-create-intellij.png)

   Para o PyCharm, escolha **Aplicação sem servidor da AWS**.  
![\[Como escolher criar uma aplicação sem servidor da AWS no PyCharm\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/sam-create-pycharm.png)

   Para o WebStorm, escolha **Aplicação sem servidor da AWS**.  
![\[Como escolher criar uma aplicação sem servidor da AWS no WebStorm\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/sam-create-webstorm.png)

   Para o JetBrains Rider, escolha **Aplicação sem servidor da AWS**.  
![\[Como escolher criar uma aplicação sem servidor da AWS no JetBrains Rider\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/sam-create-rider.png)

1. Preencha a [caixa de diálogo Novo projeto (ou a caixa de diálogo Nova solução para o JetBrains Rider)](new-project-dialog.md), e, em seguida, escolha **Concluir** (para o IntelliJ IDEA) ou **Criar ** (para o PyCharm, o WebStorm ou o JetBrains Rider). O AWS Toolkit for JetBrains cria o projeto e adiciona arquivos de código do aplicativo sem servidor para o novo projeto.

1. Se estiver usando o IntelliJ IDEA, com a janela de ferramentas **Projeto** já aberta e exibindo o projeto que contém os arquivos da aplicação sem servidor, execute um dos seguintes procedimentos:
   + Para projetos baseados em Maven, clique com o botão direito do mouse no arquivo `pom.xml` do projeto e escolha **Add as Maven Project (Adicionar como projeto Maven)**.  
![\[Escolher adicionar o arquivo POM como um projeto Maven\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/add-as-maven-project.png)
   + Para projetos baseados em Gradle, clique com o botão direito do mouse no arquivo `build.gradle` do projeto e escolha **Import Gradle project (Importar projeto Gradle)**.  
![\[Escolher importar o projeto Gradle\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/import-gradle-project.png)

     Preencha a caixa de diálogo **Import Module from Gradle (Importar módulo do Gradle)** e escolha **OK**.

Depois de criar a aplicação sem servidor, você pode executar (invocar) ou depurar o versionamento local de uma função do AWS Lambda que está contida nessa aplicação.

Você também pode implantar o aplicativo sem servidor. Depois de implantá-lo, você pode executar (invocar) o versionamento remoto de uma função do Lambda que faz parte dessa aplicação implantada.

# Como sincronizar aplicações do AWS SAM no AWS Toolkit for JetBrains
<a name="sam-sync"></a>

AWS Serverless Application Model (AWS SAM) `sam sync` é um processo de implantação do comando AWS SAM-CLI que identifica automaticamente as alterações feitas em suas aplicações sem servidor e, em seguida, escolhe a melhor maneira de criar e implantar essas alterações na Nuvem AWS. Se você só fez alterações no código da sua aplicação sem alterar a infraestrutura, o AWS SAM Sync atualiza sua aplicação sem reimplantar sua pilha do CloudFormation.

Para obter mais informações sobre o `sam sync` e comandos da CLI do AWS SAM, consulte o tópico [AWS SAM CLI Command Reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-command-reference.html) no *Guia do usuário do AWS Serverless Application Model*.

As seções a seguir descrevem como começar a trabalhar com o AWS SAM Sync.

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

Antes de trabalhar com o AWS SAM Sync, é necessário atender aos seguintes pré-requisitos:
+ Ter uma aplicação do AWS SAM em funcionamento. Para obter mais informações sobre criar uma aplicação do AWS SAM, consulte o tópico [Como trabalhar com o AWS SAM](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-sam-create) neste Guia do usuário.
+ Ter a versão 1.78.0. (ou posterior) da CLI do AWS SAM instalada. Para obter informações sobre como instalar a CLI do AWS SAM, consulte o tópico [Installing the AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) no *Guia do usuário do AWS Serverless Application Model*.
+ Ter a aplicação em execução em um ambiente de desenvolvimento.

**nota**  
Para sincronizar e implantar uma aplicação sem servidor que contém uma função do AWS Lambda com qualquer propriedade não padrão, as propriedades opcionais devem ser definidas no arquivo de modelo do AWS SAM associado à função do AWS Lambda, antes da implantação.  
Para saber mais sobre propriedades do AWS Lambda, consulte a seção [AWS::Serverless::Function](https://github.com/aws/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) no *Guia do usuário do AWS Serverless Application Model* no GitHub.

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

Para começar a trabalhar com o AWS SAM Sync, conclua o procedimento a seguir.

**nota**  
Certifique-se de que sua região da AWS esteja definida como o local associado à sua aplicação sem servidor.  
Para saber mais sobre como mudar a região da AWS no AWS Toolkit for JetBrains, consulte o tópico [Alternar entre as regiões da AWS](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-switch-region) neste Guia do usuário.

1. No seu projeto de aplicação sem servidor na janela de ferramentas **Projeto**, abra o menu de contexto (clique com o botão direito) para o arquivo `template.yaml`.

1. No menu de contexto `template.yaml`, escolha **Sincronizar aplicação sem servidor (antigo Implantar)** para abrir a caixa de diálogo **Confirmar a pilha de desenvolvimento**.

1. Confirme se você está trabalhando em uma pilha de desenvolvimento para abrir a caixa de diálogo **Sincronizar aplicação sem servidor**.  
![\[Confirme a caixa de diálogo da pilha de desenvolvimento\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/sam-sync-dev-stack.png)

1. Conclua as etapas na caixa de diálogo **Sincronizar aplicação sem servidor** e, em seguida, escolha **Sincronizar** para começar o processo do AWS SAM Sync. Para saber mais sobre a caixa de diálogo **Sincronizar aplicação sem servidor**, consulte a seção [Caixa de diálogo Sincronizar aplicação sem servidor](#sam-sync-serverless-app-dialog) a seguir.

1. Durante o processo de sincronização, a **Janela de execução** do AWS Toolkit for JetBrains é atualizada com o status de implantação.

1. Após uma sincronização bem-sucedida, o nome da sua pilha do CloudFormation é adicionado ao **Explorador da AWS**. 

   Se a sincronização falhar, os detalhes da solução de problemas podem ser encontrados na **Janela de execução** do JetBrains ou nos **logs de evento** do CloudFormation. Para saber mais sobre a visualização de logs de evento do CloudFormation, consulte o tópico [Como visualizar logs de evento para uma pilha](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-cloudformation-logs) neste Guia do usuário.

## Caixa de diálogo Sincronizar aplicação sem servidor
<a name="sam-sync-serverless-app-dialog"></a>

A **caixa de diálogo Sincronizar aplicação sem servidor** auxilia você com o processo de sincronização do AWS SAM. As seções a seguir são descrições e detalhes de cada um dos diferentes componentes da caixa de diálogo.

### Criar pilha ou atualizar pilha
<a name="w7aac13c40c11c13b5"></a>

**Obrigatório:** para criar uma nova pilha de implantação, insira um nome no campo fornecido para criar e definir a pilha do CloudFormation para a implantação de sua aplicação sem servidor. 

Como alternativa, para implantar em uma pilha existente do CloudFormation, selecione o nome da pilha na lista preenchida automaticamente de pilhas associadas à sua conta da AWS.

### Parâmetros de modelo
<a name="w7aac13c40c11c13b7"></a>

**Opcional:** preenche com uma lista de parâmetros detectados em seu arquivo `template.yaml` de projeto. Para especificar valores de parâmetros, insira um novo valor de parâmetro no campo de texto fornecido, localizado na coluna **Valor**.

### S3 Bucket
<a name="w7aac13c40c11c13b9"></a>

**Obrigatório:** para escolher um bucket existente do Amazon Simple Storage Service (Amazon S3) para armazenar seu modelo do CloudFormation, selecione-o na lista.

Para criar e usar o novo bucket do Amazon S3 para armazenamento, escolha **Criar** e siga as instruções.

### Repositório do ECR
<a name="w7aac13c40c11c13c11"></a>

**Obrigatório, visível somente ao trabalhar com um pacote do tipo Imagem:** escolha um URI de repositório existente do Amazon Elastic Container Registry (Amazon ECR) para implantação da sua aplicação sem servidor.

Para obter informações sobre os tipos de pacotes do AWS Lambda, consulte a seção [Pacotes de implantação do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) no *Guia do desenvolvedor do AWS Lambda.*

### Recursos do CloudFormation
<a name="w7aac13c40c11c13c13"></a>

**Obrigatório:** escolha os recursos que o CloudFormation pode usar ao criar pilhas.

### Tags
<a name="w7aac13c40c11c13c15"></a>

**Opcional:** insira suas tags preferenciais nos campos de texto fornecidos para etiquetar um parâmetro.

### Função de compilação dentro de um contêiner
<a name="w7aac13c40c11c13c17"></a>

**Opcional, o Docker exigia:** selecionar essas opções compila suas funções de aplicação sem servidor dentro de um contêiner local do Docker, antes da implantação. Isso é útil se a função depende de pacotes que têm dependências ou programas compilados nativamente.

Para obter mais informações, consulte o tópico [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html) no *Guia do desenvolvedor do AWS Serverless Application Model*.

# Como alterar (atualizar) configurações de aplicação sem servidor da AWS usando o AWS Toolkit for JetBrains
<a name="sam-update"></a>

Primeiro é necessário implantar a aplicação sem servidor da AWS que deseja alterar, caso ainda não esteja implantada.
**nota**  
Para implantar um aplicativo sem servidor que contenha uma função do AWS Lambda e implantar essa função com propriedades não padrão ou opcionais, primeiro é necessário definir essas propriedades no arquivo de modelo do AWS SAM correspondente 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. Com a janela de ferramentas **Project (Projeto)** já aberta e exibindo o projeto que contém os arquivos do aplicativo sem servidor, abra o arquivo `template.yaml` do projeto. Altere o conteúdo do arquivo para refletir as novas configurações e, a seguir, salve e feche o arquivo.

1. Se precisar alternar para uma outra região da AWS para a qual implantar a aplicação sem servidor, faça isso agora.

1. Clique com o botão direito do mouse no arquivo `template.yaml` do projeto e escolha **Deploy Serverless Application (Implantar aplicativo sem servidor)**.  
![\[Escolher o comando Deploy Serverless Application (Implantar aplicativo sem servidor)\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/deploy-serverless-application.png)

1. Preencha a caixa de diálogo [Deploy Serverless Application (Implantar aplicativo sem servidor)](deploy-serverless-application-dialog.md) e escolha **Deploy (Implantar)**. O AWS Toolkit for JetBrains atualiza a pilha do AWS CloudFormation correspondente para a implantação. 

   Se a implantação falhar, você pode tentar descobrir o porquê visualizando os logs de eventos da pilha.

# Como excluir uma aplicação sem servidor da AWS usando o AWS Toolkit for JetBrains
<a name="sam-delete"></a>

Antes de excluir uma aplicação sem servidor da AWS, é necessário implantá-la primeiro.

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 aplicação sem servidor, faça isso agora.

1. Expanda **CloudFormation**.

1. Clique com o botão direito do mouse no nome da pilha de AWS CloudFormation que contém o aplicativo sem servidor a ser excluído, e escolha **Delete CloudFormation Stack (Excluir pilha de CloudFormation)**.  
![\[Como escolher excluir a pilha do AWS CloudFormation em uma aplicação sem servidor da AWS iniciando no Explorador da AWS\]](http://docs.aws.amazon.com/pt_br/toolkit-for-jetbrains/latest/userguide/images/sam-delete.png)

1. Insira o nome da pilha para confirmar a exclusão e, a seguir, escolha **OK**. Se a exclusão de pilha for bem-sucedida, o AWS Toolkit for JetBrains remove o nome da pilha da lista de **CloudFormation** no**AWS Explorer**. Se a exclusão da pilha falhar, você pode tentar descobrir o porquê visualizando os logs de evento para a pilha.