

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á.

# Gerenciamento de aplicações Elastic Beanstalk
<a name="applications"></a>

Este capítulo descreve como gerenciar e configurar suas aplicações Elastic Beanstalk. A primeira etapa do uso AWS Elastic Beanstalk é criar um aplicativo, que represente seu aplicativo web em AWS. No Elastic Beanstalk, uma aplicação serve como contêiner para os ambientes que executam sua aplicação Web e para as versões de seu código-fonte, as configurações salvas, os logs e outros artefatos da aplicação Web criados ao usar o Elastic Beanstalk.

**Como criar uma aplicação do**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, escolha **Applications** (Aplicações) e **Create a new application** (Criar uma nova aplicação).

1. Use o formulário na tela para fornecer um nome de aplicativo.

1. (Opcional) Forneça uma descrição e adicione chaves e valores de etiqueta.

1. Escolha **Criar**.

Após a criação do aplicativo, o console solicita que você crie um ambiente para ele. Para obter informações detalhadas sobre todas as opções disponíveis, consulte [Criar um ambiente do Elastic Beanstalk](using-features.environments.md).

Se você não precisar mais de um aplicativo, poderá excluí-lo.

**Atenção**  
A exclusão de um aplicativo encerra todos os ambientes associados e exclui todas as versões e configurações salvas do aplicativo.

**Como excluir uma aplicação do**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, escolha **Applications (Aplicativos)** e selecione seu aplicativo na lista.

1. Escolha **Ações** e **Excluir aplicativo**.

**Topics**
+ [Console de gerenciamento de aplicações do Elastic Beanstalk](applications-console.md)
+ [Gerenciar versões de aplicativos](applications-versions.md)
+ [Crie um pacote de origem da aplicação Elastic Beanstalk](applications-sourcebundle.md)
+ [Usando o EB CLI com AWS CodeBuild](eb-cli-codebuild.md)
+ [Marcar aplicativos](applications-tagging.md)
+ [Marcar recursos da aplicação do Elastic Beanstalk](applications-tagging-resources.md)

# Console de gerenciamento de aplicações do Elastic Beanstalk
<a name="applications-console"></a>

Este tópico explica como você pode usar o AWS Elastic Beanstalk console para gerenciar aplicativos, versões de aplicativos e configurações salvas.

**Para acessar o console de gerenciamento de aplicativos**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Aplicativos** e escolha o nome do aplicativo na lista.

   A página de visão geral do aplicativo exibe uma lista com uma visão geral de todos os ambientes associados ao aplicativo.

1. Você tem algumas maneiras de continuar:

   1. No menu suspenso **Ações**, você pode escolher uma das ações de gerenciamento de aplicações: **Criar ambiente**, **Excluir aplicação**, **Visualizar versões da aplicação**, **Visualizar configurações salvas**, **Restaurar ambiente encerrado**.

      Para iniciar um ambiente nesta aplicação, escolha diretamente **Criar ambiente**. Para obter detalhes, consulte [Criar um ambiente do Elastic Beanstalk](using-features.environments.md).

   1. A página lista o nome do ambiente ao lado das aplicações implantadas em um ambiente. Escolha um nome de ambiente para acessar o [console de gerenciamento de ambiente](environments-console.md) desse ambiente em que é possível configurar, monitorar ou gerenciar o ambiente.

   1. Quando você seleciona uma aplicação na lista, o painel de navegação esquerdo lista essa aplicação.
      +  Escolha **Application versions (Versões do aplicativo)** após o nome do aplicativo no painel de navegação para visualizar e gerenciar as versões do aplicativo. 

        Uma versão do aplicativo é uma versão carregada do código do aplicativo. É possível fazer upload de novas versões, implantar uma versão existente em qualquer um dos ambientes do aplicativo ou excluir versões antigas. Para obter mais informações, consulte [Gerenciar versões de aplicativos](applications-versions.md). 
      +  Escolha **Saved configurations (Configurações salvas)** após o nome do aplicativo no painel de navegação para visualizar e gerenciar configurações salvas de ambientes em execução. 

        Uma configuração salva é um conjunto de configurações que você pode usar para restaurar configurações de um ambiente para um estado anterior ou para criar um ambiente com as mesmas configurações. Para obter mais informações, consulte [Usar configurações salvas do Elastic Beanstalk](environment-configuration-savedconfig.md). 

# Gerenciar versões de aplicativos
<a name="applications-versions"></a>

Este tópico explica as versões de aplicações e como criá-las e gerenciá-las.

O Elastic Beanstalk cria uma versão da aplicação sempre que você faz upload do código-fonte. Isso normalmente ocorre quando você cria um ambiente ou faz upload e implanta o código usando o [console de gerenciamento do ambiente](environments-console.md) ou a [CLI do EB](eb-cli3.md). O Elastic Beanstalk exclui essas versões da aplicação de acordo com a política de ciclo de vida da aplicação e quando a aplicação é excluída. Para obter detalhes sobre a política de ciclo de vida de aplicativo, consulte [Definir as configurações de ciclo de vida da versão do aplicativo](applications-lifecycle.md).

Também é possível fazer upload de um pacote de origem sem implantá-lo usando o [console de gerenciamento da aplicação](applications-console.md)ou com o comando **[**eb appversion**](eb3-appversion.md)** da EB CLI. O Elastic Beanstalk armazena pacotes de origem no Amazon Simple Storage Service (Amazon S3) e não os exclui automaticamente.

Você pode aplicar tags a uma versão do aplicativo ao criá-la e editar tags de versões existentes do aplicativo. Para obter detalhes, consulte [Atribuir tags em versões do aplicativo](applications-versions-tagging.md).

## Criação de versões de aplicações
<a name="applications-versions.creating"></a>

Você também pode criar outra versão da aplicação usando a EB CLI. Para obter mais informações, consulte [**eb appversion**](eb3-appversion.md) no capítulo *Comandos da EB CLI*.

**nota**  
Com o tempo, seu aplicativo pode acumular várias versões do aplicativo. Para economizar espaço de armazenamento e evitar atingir a [cota de versões da aplicação](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_elastic_beanstalk), é recomendável excluir versões da aplicação que não são mais necessárias. 

O arquivo especificado no procedimento a seguir está associado à sua aplicação. Você pode implantar a versão do aplicativo em um ambiente novo ou existente.

**Criar uma nova versão da aplicação**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Aplicativos** e escolha o nome do aplicativo na lista.

1. No painel de navegação, encontre o nome do aplicativo e escolha **Application versions (Versões do aplicativo)**.

1. Escolha **Carregar**. Use o formulário na tela para carregar o [pacote de origem](applications-sourcebundle.md) do aplicativo.
**nota**  
O tamanho máximo do arquivo do pacote de fontes é 500 MB.

1. Opcionalmente, forneça uma breve descrição e adicione chaves e valores de tag.

1. Escolha **Carregar**.

## Exclusão de versões de aplicações
<a name="applications-versions.deleting"></a>

Você também pode excluir uma versão da aplicação usando a EB CLI. Para obter mais informações, consulte [**eb appversion**](eb3-appversion.md) no capítulo *Comandos da EB CLI*.

**nota**  
A exclusão de uma versão do aplicativo não afeta os ambientes que a estão executando no momento.

Também é possível configurar o Elastic Beanstalk para excluir versões antigas automaticamente ao definir as configurações do ciclo de vida de versões da aplicação. Se você definir essas configurações de ciclo de vida do aplicativo, elas serão aplicadas a novas versões do aplicativo. Por exemplo, se você configurar, no máximo, 25 versões da aplicação, o Elastic Beanstalk excluirá a versão mais antiga quando você fizer upload da 26ª versão. Se você definir um período máximo de 90 dias, todas as versões com mais de 90 dias serão excluídas quando você fizer upload de uma nova versão. Para obter detalhes, consulte [Definir as configurações de ciclo de vida da versão do aplicativo](applications-lifecycle.md).

**Excluir uma versão da aplicação**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Aplicativos** e escolha o nome do aplicativo na lista.

1. No painel de navegação, encontre o nome do aplicativo e escolha **Application versions (Versões do aplicativo)**.

1. Selecione uma ou mais versões do aplicativo que você deseja excluir.

1. Escolha **Ações** e **Excluir**.

1. (Opcional) Para deixar o pacote de origem da aplicação para essas versões de aplicações no bucket do Amazon Simple Storage Service (Amazon S3), desmarque a caixa **Delete versions from Amazon S3 (Excluir versões do Amazon S3)**.

1. Escolha **Excluir**.

Se você não optar por excluir o pacote de origem do Amazon S3, o Elastic Beanstalk ainda excluirá a versão de seus registros. No entanto, o pacote de origem é deixado no [bucket de armazenamento do Elastic Beanstalk](AWSHowTo.S3.md). A cota de versões da aplicação se aplica apenas a versões monitoradas pelo Elastic Beanstalk. Portanto, se for necessário, você poderá excluir versões para se manter dentro da cota, mas retenha todos os pacotes de origem no Amazon S3.

**nota**  
A cota de versões da aplicação não se aplica a pacotes de origem, mas ainda assim pode haver cobranças do Amazon S3 e reter informações pessoais além do tempo necessário. O Elastic Beanstalk nunca exclui pacotes de origem automaticamente. Você deve excluir os pacotes de origem quando não precisar mais deles.

# Definir as configurações de ciclo de vida da versão do aplicativo
<a name="applications-lifecycle"></a>

Este tópico explica as políticas e cotas que o Elastic Beanstalk aplica às versões da sua aplicação em um determinado ambiente, incluindo por quanto tempo uma versão da aplicação permanece em um ambiente.

Cada vez que você faz upload de uma nova versão da sua aplicação com o console do Elastic Beanstalk ou a CLI do EB, o Elastic Beanstalk cria uma [versão da aplicação](applications-versions.md). Se você não excluir as versões que não usa mais, acabará atingindo a [cota de versões da aplicação](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html#limits_elastic_beanstalk) e não poderá criar novas versões dela.

Você pode evitar atingir a cota aplicando uma *política de ciclo de vida de versão do aplicativo* aos aplicativos. Uma política de ciclo de vida instrui o Elastic Beanstalk a excluir versões da aplicação antigas ou excluí-las quando o total de versões de uma determinada aplicação excede um número especificado.

O Elastic Beanstalk aplica uma política de ciclo de vida de uma aplicação cada vez que uma nova versão da aplicação é aplicada e exclui até 100 versões cada vez que a política de ciclo de vida é aplicada. O Elastic Beanstalk exclui versões antigas depois de criar a nova versão e não considera a nova versão no número máximo de versões definido na política.

O Elastic Beanstalk não exclui versões da aplicação que estão sendo usadas por um ambiente nem versões da aplicação implantadas em ambientes que foram encerrados menos de dez semanas antes do acionamento da política.

A cota de versões do aplicativo é utilizada em todos os aplicativos em uma região. Se você tiver vários aplicativos, configure cada um com uma política de ciclo de vida adequada para evitar atingir a cota. Por exemplo, se você tiver 10 aplicações em uma região e a cota for 1.000 versões da aplicação, considere definir uma política de ciclo de vida com uma cota de 99 versões para todas as aplicações ou definir outros valores em cada aplicação, desde que o total seja inferior a 1.000 versões. O Elastic Beanstalk somente aplicará a política se a criação da versão da aplicação for bem-sucedida, portanto, se você já atingiu a cota, deverá excluir algumas versões manualmente antes de criar uma nova.

Por padrão, o Elastic Beanstalk deixa o [pacote de origem](applications-sourcebundle.md) da versão da aplicação no Amazon S3 para evitar a perda de dados. Você pode excluir esse pacote para economizar espaço.

Você pode definir as configurações do ciclo de vida por meio da CLI do Elastic Beanstalk e. APIs Consulte[**eb appversion**](eb3-appversion.md), [CreateApplication](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplication.html)(usando o `ResourceLifecycleConfig` parâmetro) e [UpdateApplicationResourceLifecycle](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplicationResourceLifecycle.html)para obter detalhes.

## Definir as configurações de ciclo de vida do aplicativo no console
<a name="applications-lifecycle-console"></a>

É possível especificar as configurações do ciclo de vida no console do Elastic Beanstalk.

**Como especificar configurações de ciclo de vida do seu aplicativo**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Aplicativos** e escolha o nome do aplicativo na lista.

1. No painel de navegação, encontre o nome do aplicativo e escolha **Application versions (Versões do aplicativo)**.

1. Escolha **Configurações**.

1. Use o formulário na tela para definir as configurações do ciclo de vida do aplicativo.

1. Escolha **Salvar**.

Na página de configurações, você pode fazer o seguinte:
+ Defina as configurações do ciclo de vida com base na contagem total de versões do aplicativo ou na idade das versões do aplicativo.
+ Especifique se deseja excluir o pacote de origem do S3 quando a versão do aplicativo for excluída.
+ Especifique a função de serviço na qual a versão do aplicativo é excluída. Para incluir todas as permissões necessárias para a exclusão da versão, escolha a função de serviço padrão do Elastic Beanstalk, denominada `aws-elasticbeanstalk-service-role`, ou outra função de serviço usando as políticas de serviço gerenciadas do Elastic Beanstalk. Para obter mais informações, consulte [Gerenciar funções de serviço do Elastic Beanstalk](iam-servicerole.md).

# Atribuir tags em versões do aplicativo
<a name="applications-versions-tagging"></a>

Este tópico explica os benefícios de marcar as versões da aplicação Elastic Beanstalk e como gerenciar as etiquetas.

Você pode aplicar tags às versões do seu AWS Elastic Beanstalk aplicativo. As tags são pares de valores-chave associados AWS aos recursos. Para obter informações sobre a atribuição de tags do recurso do Elastic Beanstalk, casos de uso, restrições de chave e valor de tag, além de tipos de recursos compatíveis, consulte [Marcar recursos da aplicação do Elastic Beanstalk](applications-tagging-resources.md).

Você pode especificar tags quando criar uma versão do aplicativo. Em uma versão de aplicativo existente, você pode adicionar ou remover tags e atualizar os valores de tags existentes. Você pode adicionar até 50 tags para cada versão do aplicativo.

## Adicionar tags durante a criação da versão do aplicativo
<a name="applications-versions-tagging.create"></a>

Ao usar o console do Elastic Beanstalk para [criar um ambiente](environments-create-wizard.md) e optar por fazer upload de uma versão do código da aplicação, você pode especificar chaves e valores de tags para associar à nova versão da aplicação.

Também é possível usar o console do Elastic Beanstalk para [fazer upload de uma versão da aplicação](applications-versions.md) sem usá-lo imediatamente em um ambiente. Você pode especificar valores e chaves de tag ao carregar uma versão do aplicativo.

Com o AWS CLI ou outros clientes baseados em API, adicione tags usando o `--tags` parâmetro no **[create-application-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-application-version.html)** comando.

```
$ aws elasticbeanstalk create-application-version \
      --tags Key=mytag1,Value=value1 Key=mytag2,Value=value2 \
      --application-name my-app --version-label v1
```

Quando você usa a CLI do EB para criar ou atualizar um ambiente, uma versão do aplicativo é criada a partir do código implementado. Não há uma maneira direta de atribuir uma tag a uma versão do aplicativo durante sua criação por meio da CLI do EB. Consulte a seção a seguir para saber como adicionar tags a uma versão do aplicativo existente.

## Gerenciar tags de uma versão do aplicativo existente
<a name="applications-versions-tagging.manage"></a>

É possível adicionar, atualizar e excluir tags em uma versão existente da aplicação do Elastic Beanstalk.

**Como gerenciar as tags de uma versão da aplicação usando o console do Elastic Beanstalk**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Aplicativos** e escolha o nome do aplicativo na lista.

1. No painel de navegação, encontre o nome do aplicativo e escolha **Application versions (Versões do aplicativo)**.

1. Selecione a versão do aplicativo que você deseja gerenciar.

1. Escolha **Actions (Ações)** e **Manage tags (Gerenciar tags)**.

1. Use o formulário na tela para adicionar, atualizar ou excluir tags.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

Se você usar a CLI do EB para atualizar a versão do aplicativo, use **[eb tags](eb3-tags.md)** para adicionar, atualizar, excluir ou listar tags.

Por exemplo, o comando a seguir lista as tags em uma versão do aplicativo.

```
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

O comando a seguir atualiza a tag `mytag1` e exclui a tag `mytag2`.

```
~/workspace/my-app$ eb tags --update mytag1=newvalue --delete mytag2 \
      --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

Para obter uma lista de opções e mais exemplos, consulte `eb tags`.

Com o AWS CLI ou outros clientes baseados em API, use o **[list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-tags-for-resource.html)** comando para listar as tags de uma versão do aplicativo.

```
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

Use o comando **[update-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-tags-for-resource.html)** para adicionar, atualizar ou excluir tags em uma versão do aplicação.

```
$ aws elasticbeanstalk update-tags-for-resource \
      --tags-to-add Key=mytag1,Value=newvalue --tags-to-remove mytag2 \
      --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

Especifique as tags a serem adicionadas e atualizadas no parâmetro `--tags-to-add` do **update-tags-for-resource**. Uma tag não existente é adicionada, e o valor de uma tag existente é atualizado.

**nota**  
Para usar alguns AWS CLI comandos e CLI do EB com uma versão do aplicativo Elastic Beanstalk, você precisa do ARN da versão do aplicativo. Você pode recuperar o ARN usando o comando a seguir.  

```
$ aws elasticbeanstalk describe-application-versions --application-name my-app --version-label my-version
```

# Crie um pacote de origem da aplicação Elastic Beanstalk
<a name="applications-sourcebundle"></a>

Este tópico explica como carregar arquivos de origem da sua aplicação para o Elastic Beanstalk em um pacote de origem. Ele explica os requisitos de um pacote de origem, sua estrutura e as abordagens para criá-lo.

Ao usar o AWS Elastic Beanstalk console para implantar um novo aplicativo ou uma versão do aplicativo, você precisará carregar os arquivos do aplicativo em um *pacote de origem*. O pacote de origem deve cumprir os seguintes requisitos: 
+ Consistir em um único arquivo `ZIP` ou `WAR` (você pode incluir vários arquivos `WAR` em seu arquivo `ZIP`)
+ Não exceder 500 MB
+ Não incluir uma pasta pai ou o diretório de nível superior (subdiretórios podem ser usados)

Se você deseja implantar um aplicativo do operador que processa tarefas periódicas em segundo plano, o pacote de origem do aplicativo deverá incluir também um arquivo `cron.yaml`. Para obter mais informações, consulte [Tarefas periódicas](using-features-managing-env-tiers.md#worker-periodictasks).

Se você estiver implantando seu aplicativo com a Interface de Linha de Comando do Elastic Beanstalk (EB CLI), o AWS Toolkit for Eclipse ou o AWS Toolkit for Visual Studio, o arquivo ZIP ou WAR será automaticamente estruturado corretamente. Para obter mais informações, consulte [Configurar a interface de linha de comando EB (EB CLI) para gerenciar o Elastic Beanstalk](eb-cli3.md), [Implantação de aplicações Java com o Elastic Beanstalk](create_deploy_Java.md) e [O AWS Toolkit for Visual Studio](dotnet-toolkit.md).

**Topics**
+ [Criar pacote de origem a partir da linha de comando](#using-features.deployment.source.commandline)
+ [Criar pacote de origem com o Git](#using-features.deployment.source.git)
+ [Compactar arquivos no Mac OS X Finder ou Windows Explorer](#using-features.deployment.source.gui)
+ [Criar pacote de origem para um aplicativo .NET](#using-features.deployment.source.dotnet)
+ [Testar pacote de origem](#using-features.deployment.source.test)

## Criar pacote de origem a partir da linha de comando
<a name="using-features.deployment.source.commandline"></a>

Crie um pacote de origem usando o comando `zip`. Para incluir arquivos e pastas ocultos, use um padrão, como os seguintes.

```
~/myapp$ zip ../myapp.zip -r * .[^.]*
  adding: app.js (deflated 63%)
  adding: index.js (deflated 44%)
  adding: manual.js (deflated 64%)
  adding: package.json (deflated 40%)
  adding: restify.js (deflated 85%)
  adding: .ebextensions/ (stored 0%)
  adding: .ebextensions/xray.config (stored 0%)
```

Isso garante que os [arquivos de configuração](ebextensions.md) do Elastic Beanstalk e outros arquivos e pastas que começam com um ponto sejam incluídos no arquivo.

Para aplicativos web Tomcat, use `jar` para criar um arquivamento web.

```
~/myapp$ jar -cvf myapp.war .
```

Os comandos acima incluem arquivos ocultos que podem aumentar o tamanho do pacote de origem desnecessariamente. Para obter mais controle, use um padrão de arquivo mais detalhado ou [crie seu pacote de origem com o Git](#using-features.deployment.source.git).

## Criar pacote de origem com o Git
<a name="using-features.deployment.source.git"></a>

Se você estiver usando o Git para gerenciar o código-fonte do aplicativo, use o comando `git archive` para criar o pacote de origem.

```
$ git archive -v -o myapp.zip --format=zip HEAD
```

`git archive` inclui apenas os arquivos que são armazenados em git e exclui arquivos ignorados e git. Isso ajuda a manter o pacote de origem o menor possível. Para obter mais informações, acesse a [página do manual git-archive](http://git-scm.com/docs/git-archive).

## Compactar arquivos no Mac OS X Finder ou Windows Explorer
<a name="using-features.deployment.source.gui"></a>

Quando você criar um arquivo `ZIP` no Mac OS X Finder ou Windows Explorer, certifique-se de compactar os arquivos e subpastas, em vez da pasta pai. 

**nota**  
A interface gráfica de usuário (GUI) nos sistemas operacionais baseados em Mac OS X e Linux não exibe os arquivos e pastas com nomes que começam com um ponto (.). Use a linha de comando em vez da GUI para compactar o aplicativo se o arquivo `ZIP` deve incluir uma pasta oculta, como `.ebextensions`. Para os procedimentos de linha de comando para criar um arquivo `ZIP` no sistema operacional baseado em Mac OS X ou Linux, consulte [Criar pacote de origem a partir da linha de comando](#using-features.deployment.source.commandline).

**Example**  
Suponhamos que você tenha uma pasta de projeto Python chamada `myapp`, que inclui os seguintes arquivos e subpastas:   

```
myapplication.py
README.md
static/
static/css
static/css/styles.css
static/img
static/img/favicon.ico
static/img/logo.png
templates/
templates/base.html
templates/index.html
```
Como observado na lista de requisitos acima, seu pacote de origem deve ser compactado sem uma pasta pai, para que a estrutura descompactada não inclua um diretório de nível superior extra. Neste exemplo, nenhuma pasta `myapp` deverá ser criada quando os arquivos forem descompactados (ou, na linha de comando, nenhum segmento `myapp` deverá ser adicionado aos caminhos de arquivo).   
Este exemplo de estrutura de arquivos é usado em todo este tópico para ilustrar como compactar arquivos.

## Criar pacote de origem para um aplicativo .NET
<a name="using-features.deployment.source.dotnet"></a>

Se você usa o Visual Studio, pode usar a ferramenta de implantação incluída no AWS Toolkit for Visual Studio para implantar seu aplicativo.NET no Elastic Beanstalk. Para obter mais informações, consulte [Implantação de aplicativos do Elastic Beanstalk no.NET usando ferramentas de implantação AWS](deploy_NET_standalone_tool.md).

Se você precisa criar manualmente um pacote de origem para o seu aplicativo .NET, não pode simplesmente criar um arquivo `ZIP` que contenha o diretório do projeto. É necessário criar um pacote de implantação da Web para seu projeto que seja adequado à implantação no Elastic Beanstalk. Há vários métodos que podem ser usados para criar um pacote de implantação:
+ Crie o pacote de implantação usando o assistente **Publicar na Web** no Visual Studio. Para obter mais informações, acesse [Como criar um pacote de implantação Web no Visual Studio](http://msdn.microsoft.com/en-us/library/dd465323.aspx).
**Importante**  
Ao criar o pacote de implantação da Web, inicie o **Nome do site** com `Default Web Site`.
+ Se tiver um projeto .NET, você poderá criar o pacote de implantação usando o comando **msbuild**, conforme exibido no exemplo a seguir. 
**Importante**  
O parâmetro `DeployIisAppPath` deve começar com `Default Web Site`.

  ```
  C:/> msbuild <web_app>.csproj /t:Package /p:DeployIisAppPath="Default Web Site"
  ```
+ Se você tem um projeto de site, pode usar a ferramenta de implantação da Web do IIS para criar o pacote de implantação. Para obter mais informações, acesse [Packaging and Restoring a Web site](http://www.iis.net/learn/publish/using-web-deploy/packaging-and-restoring-a-web-site).
**Importante**  
O parâmetro `apphostconfig` deve começar com `Default Web Site`.

Se estiver implantando vários aplicativos ou um aplicativo ASP.NET Core, coloque sua `.ebextensions` pasta na raiz do pacote de origem, lado a lado com os pacotes do aplicativo e arquivo manifesto:

```
~/workspace/source-bundle/
|-- .ebextensions
|   |-- environmentvariables.config
|   `-- healthcheckurl.config
|-- AspNetCore101HelloWorld.zip
|-- AspNetCoreHelloWorld.zip
|-- aws-windows-deployment-manifest.json
`-- VS2015AspNetWebApiApp.zip
```

## Testar pacote de origem
<a name="using-features.deployment.source.test"></a>

Convém testar seu pacote de origem localmente antes de fazer upload para o Elastic Beanstalk. Como o Elastic Beanstalk usa basicamente a linha de comando para extrair os arquivos, é melhor fazer os testes a partir da linha de comando em vez de usar uma ferramenta GUI. 

Certifique-se de que os arquivos descompactados aparecem na mesma pasta que o próprio arquivo, não em uma nova pasta ou diretório de nível superior.

# Usando o EB CLI com AWS CodeBuild
<a name="eb-cli-codebuild"></a>

O [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/) compila o código-fonte, roda testes de unidade e produz artefatos prontos para implantação. É possível usar o CodeBuild com a CLI do EB para automatizar a criação do aplicativo a partir de seu código-fonte. A criação do ambiente e cada implantação subsequente iniciam com uma etapa de criação e com a implantação do aplicativo resultante.

**nota**  
Algumas regiões não oferecem CodeBuild. A integração entre o Elastic CodeBuild Beanstalk não funciona nessas regiões.  
Para obter informações sobre os AWS serviços oferecidos em cada região, consulte a [Tabela de regiões](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Como criar uma aplicação do
<a name="eb-cli-codebuild-using"></a>

**Para criar um aplicativo do Elastic Beanstalk que usa CodeBuild**

1. Inclua um arquivo de especificação de CodeBuild compilação [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html),, na pasta do aplicativo.

1. Adicione uma entrada `eb_codebuild_settings` com opções específicas do Elastic Beanstalk ao arquivo.

1. Execute [**eb init**](eb3-init.md) na pasta.
**nota**  
Não use os caracteres ponto (`.`) ou espaço (` `) no *nome do aplicativo* ao usar o EB CLI com. CodeBuild 

O Elastic Beanstalk [CodeBuild estende o formato do arquivo de especificação de compilação para incluir as](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html) seguintes configurações adicionais:

```
eb_codebuild_settings:
  CodeBuildServiceRole: role-name
  ComputeType: size
  Image: image
  Timeout: minutes
```

`CodeBuildServiceRole`  
O ARN ou o nome da função de serviço AWS Identity and Access Management (IAM) que CodeBuild pode ser usada para interagir com AWS serviços dependentes em seu nome. Este valor é obrigatório. Se você omiti-lo, qualquer comando **eb create** ou **eb deploy** subsequente apresentará falha.  
Para saber mais sobre como criar uma função de serviço para CodeBuild, consulte [Criar uma função CodeBuild de serviço](https://docs.aws.amazon.com/codebuild/latest/userguide/setting-up.html#setting-up-service-role) no *Guia AWS CodeBuild do usuário*.  
Você também precisa de permissões para realizar ações CodeBuild por si só. A política de usuários gerenciados do **AdministratorAccessElastic AWSElastic Beanstalk** - Beanstalk inclui todas as permissões de ação necessárias. CodeBuild Se você não estiver usando a política gerenciada, certifique-se de conceder as permissões a seguir na política de usuário.  

```
  "codebuild:CreateProject",
  "codebuild:DeleteProject",
  "codebuild:BatchGetBuilds",
  "codebuild:StartBuild"
```
Para obter detalhes, consulte [Gerenciar políticas de usuário do Elastic Beanstalk](AWSHowTo.iam.managed-policies.md).

`ComputeType`  
A quantidade de recursos usados pelo contêiner Docker no ambiente de CodeBuild compilação. Os valores válidos são BUILD\$1 GENERAL1 \$1SMALL, BUILD\$1 \$1MEDIUM e BUILD\$1 GENERAL1 \$1LARGE. GENERAL1

`Image`  
O nome da imagem do Docker Hub ou do Amazon ECR CodeBuild usada para o ambiente de construção. Essa imagem do Docker deve conter todas as ferramentas e bibliotecas de tempo de execução necessárias para criar seu código e deve corresponder à plataforma de destino do seu aplicativo. CodeBuild gerencia e mantém um conjunto de imagens especificamente destinado a ser usado com o Elastic Beanstalk. É recomendado que você use uma delas. Para obter detalhes, consulte [Imagens do Docker fornecidas por CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html) no *Guia do AWS CodeBuild usuário*.  
O valor `Image` é opcional. Se você omiti-lo, o comando **eb init** tentará escolher uma imagem que melhor corresponde à plataforma de destino. Além disso, se você executar **eb init** no modo interativo e ele falhar na escolha de uma imagem para você, será solicitado que você escolha uma. Ao final de uma inicialização bem-sucedida, **eb init** grava a imagem escolhida no arquivo `buildspec.yml`.

`Timeout`  
A duração, em minutos, da execução da CodeBuild compilação antes do tempo limite. Este valor é opcional. Para obter detalhes sobre valores válidos e padrão, consulte [Criar um projeto de compilação em CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project.html).  
Esse tempo limite controla a duração máxima de uma CodeBuild execução, e a CLI do EB também o respeita como parte de sua primeira etapa para criar uma versão do aplicativo. É diferente do valor que você pode especificar na opção `--timeout` dos comandos [**eb create**](eb3-create.md) ou [**eb deploy**](eb3-deploy.md). O último valor controla a duração máxima que a CLI do EB aguarda para a criação ou atualização do ambiente.

## Criar e implantar o código do aplicativo
<a name="eb-cli-codebuild-using"></a>

Sempre que o código do aplicativo precisa ser implantado, a CLI do EB CodeBuild usa para executar uma compilação e, em seguida, implanta os artefatos de compilação resultantes em seu ambiente. Isso ocorre ao criar um ambiente do Elastic Beanstalk para a aplicação usando o comando [**eb create**](eb3-create.md) e sempre que você implantar alterações no código no ambiente usando o comando [**eb deploy**](eb3-deploy.md).

Se a CodeBuild etapa falhar, a criação ou implantação do ambiente não será iniciada.

# Marcar aplicativos
<a name="applications-tagging"></a>

Este tópico explica os benefícios de marcar aplicações Elastic Beanstalk. Também fornece instruções para criar e gerenciar etiquetas de aplicações. As tags são pares de valores-chave associados AWS aos recursos. Para obter informações sobre a atribuição de tags do recurso do Elastic Beanstalk, casos de uso, restrições de chave e valor de tag, além de tipos de recursos compatíveis, consulte [Marcar recursos da aplicação do Elastic Beanstalk](applications-tagging-resources.md).

Você pode especificar tags quando cria um aplicativo. Em um aplicativo existente, você pode adicionar ou remover tags e atualizar os valores de tags existentes. Você pode adicionar até 50 tags para cada aplicativo.

## Adicionar tags durante a criação do aplicativo
<a name="applications-tagging.create"></a>

Ao usar o console do Elastic Beanstalk para [criar uma aplicação](applications.md), é possível especificar chaves e valores de tags na caixa de diálogo **Create New Application (Criar nova aplicação)**.

Se você usar a CLI do EB para criar um aplicativo, use a opção `--tags` com **[eb init](eb3-init.md)** para adicionar tags.

```
~/workspace/my-app$ eb init --tags mytag1=value1,mytag2=value2
```

Com o AWS CLI ou outros clientes baseados em API, adicione tags usando o `--tags` parâmetro no **[create-application](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-application.html)** comando.

```
$ aws elasticbeanstalk create-application \
      --tags Key=mytag1,Value=value1 Key=mytag2,Value=value2 \
      --application-name my-app --version-label v1
```

## Gerenciar tags de um aplicativo existente
<a name="applications-tagging.manage"></a>

É possível adicionar, atualizar e excluir tags em uma aplicação existente do Elastic Beanstalk.

**Como gerenciar as tags de uma aplicação no console do Elastic Beanstalk**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Aplicativos** e escolha o nome do aplicativo na lista.

1. Escolha **Actions (Ações)** e **Manage tags (Gerenciar tags)**.

1. Use o formulário na tela para adicionar, atualizar ou excluir tags.

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

Se você usar a CLI do EB para atualizar o aplicativo, use **[eb tags](eb3-tags.md)** para adicionar, atualizar, excluir ou listar tags.

Por exemplo, o comando a seguir lista as tags em um aplicativo.

```
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:application/my-app"
```

O comando a seguir atualiza a tag `mytag1` e exclui a tag `mytag2`.

```
~/workspace/my-app$ eb tags --update mytag1=newvalue --delete mytag2 \
      --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:application/my-app"
```

Para obter uma lista de opções e mais exemplos, consulte `eb tags`.

Com o AWS CLI ou outros clientes baseados em API, use o **[list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-tags-for-resource.html)** comando para listar as tags de um aplicativo.

```
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:application/my-app"
```

Use o comando **[update-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-tags-for-resource.html)** para adicionar, atualizar ou excluir tags em uma aplicação.

```
$ aws elasticbeanstalk update-tags-for-resource \
      --tags-to-add Key=mytag1,Value=newvalue --tags-to-remove mytag2 \
      --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:application/my-app"
```

Especifique as tags a serem adicionadas e atualizadas no parâmetro `--tags-to-add` do **update-tags-for-resource**. Uma tag não existente é adicionada, e o valor de uma tag existente é atualizado.

**nota**  
Para usar alguns AWS CLI comandos e CLI do EB com um aplicativo do Elastic Beanstalk, você precisa do ARN do aplicativo. Você pode recuperar o ARN usando o comando a seguir.  

```
$ aws elasticbeanstalk describe-applications --application-names my-app
```

# Marcar recursos da aplicação do Elastic Beanstalk
<a name="applications-tagging-resources"></a>

Este tópico explica os benefícios de usar etiquetas com os recursos da aplicação Elastic Beanstalk, juntamente com as restrições de fazê-lo. Ele também explica como criar e gerenciar etiquetas para recursos da aplicação.

Você pode aplicar tags aos recursos de seus AWS Elastic Beanstalk aplicativos. As tags são pares de valores-chave associados AWS aos recursos. As tags podem ajudar você a classificar recursos. Eles são particularmente úteis se você gerencia muitos recursos como parte de vários AWS aplicativos.

Veja a seguir algumas maneiras de usar tags com recursos do Elastic Beanstalk:
+ *Estágios de implantação*: identifique recursos associados a diferentes estágios da aplicação, como desenvolvimento, beta e produção.
+ *Alocação* de custos — Use relatórios de alocação de custos para monitorar o uso de AWS recursos associados a várias contas de despesas. Os relatórios incluem recursos marcados e não marcados e agregam os custos de acordo com as tags. Para obter informações sobre como os relatórios de alocação de custo usam etiquetas, consulte [Usar etiquetas de alocação de custos para relatórios de faturamento personalizados](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation.html) no *Guia do usuário do AWS Billing and Cost Management*.
+ *Controle de acesso*: use etiquetas para gerenciar permissões para solicitações e recursos. Por exemplo, um usuário que só pode criar e gerenciar ambientes beta deve ter acesso somente aos recursos do estágio beta. Para obter detalhes, consulte [Usar tags para controlar o acesso aos recursos do Elastic BeanstalkExemplos de condições de etiquetas em políticas](AWSHowTo.iam.policies.access-tags.md).

Você pode adicionar até 50 tags a cada recurso. Os ambientes são um pouco diferentes: o Elastic Beanstalk adiciona três tags de sistema padrão aos ambientes, e não é possível editar nem excluir essas tags. Além das tags padrão, você pode adicionar até 47 tags adicionais a cada ambiente.

As seguintes restrições se aplicam a chaves e valores de tags:
+ As chaves e os valores podem conter letras, números, espaço em branco e os seguintes símbolos: `_ . : / = + - @`
+ As chaves podem conter até 127 caracteres. Os valores podem conter até 255 caracteres.
**nota**  
Esses limites de tamanho são para caracteres Unicode em UTF-8. Para outras codificações multibyte, os limites podem ser menores.
+ As chaves fazem distinção entre maiúsculas e minúsculas.
+ As chaves de tag não podem começar com `aws:` ou `elasticbeanstalk:`.

## Recursos que podem ser marcados
<a name="applications-tagging-resources.supported"></a>

Veja a seguir os tipos de recursos do Elastic Beanstalk que podem ser marcados com tags, bem como os links para tópicos específicos sobre gerenciamento de tags para cada um deles:
+ [Aplicativos](applications-tagging.md)
+ [Ambientes do](using-features.tagging.md)
+ [Versões do aplicativo](applications-versions-tagging.md)
+ [Configurações salvas](environment-configuration-savedconfig-tagging.md)

# Propagação de tags para modelos de execução
<a name="applications-tagging-resources.launch-templates"></a>

O Elastic Beanstalk fornece uma opção para permitir a propagação de tags de ambiente para modelos de execução. Essa opção fornece suporte contínuo ao controle de acesso baseado em tags (TBAC) com modelos de execução.

**nota**  
As configurações de lançamento estão sendo descontinuadas e substituídas por modelos de execução. Para obter mais informações, consulte [Configurações de lançamento no Guia](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html) do usuário do *Amazon EC2 Auto Scaling.*

Para evitar o tempo de inatividade das EC2 instâncias em execução, CloudFormation não propaga tags para os modelos de execução existentes. Se houver um caso de uso que exija tags para os recursos do seu ambiente, você poderá habilitar o Elastic Beanstalk para criar modelos de execução com tags para esses recursos. Para fazer isso, defina a opção `LaunchTemplateTagPropagationEnabled` no namespace [aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) como `true`. O valor padrão é `false`.

O exemplo de [arquivo de configuração](ebextensions.md) a seguir permite a propagação de tags para modelos de execução.

```
option_settings:
  aws:autoscaling:launchconfiguration:
    LaunchTemplateTagPropagationEnabled: true
```

O Elastic Beanstalk só pode propagar tags para modelos de execução para os seguintes recursos:
+ Volumes do EBS
+ EC2 instâncias 
+ EC2 interfaces de rede
+ CloudFormation modelos de lançamento que definem um recurso

Essa restrição existe porque CloudFormation só permite tags na criação de modelos para recursos específicos. Para obter mais informações, consulte [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html)o *Guia AWS CloudFormation do usuário*.

**Importante**  
Alterar o valor dessa opção de `false` para `true` para um ambiente existente pode ser uma alteração significativa para tags já existentes.
Quando esse recurso estiver ativado, a propagação das tags precisará ser EC2 substituída, o que pode resultar em tempo de inatividade. É possível habilitar *atualizações contínuas* para aplicar alterações de configuração em lotes e evitar tempo de inatividade durante o processo de atualização. Para obter mais informações, consulte [Alterações de configuração](environments-updating.md).

Para obter mais informações sobre modelos de execução, consulte:
+ [Modelos de lançamento](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html) no Guia do usuário do *Amazon EC2 Auto Scaling*
+ [Trabalhar com modelos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) no *Guia do usuário do AWS CloudFormation *
+ [Trechos de modelos do Elastic Beanstalk](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-elasticbeanstalk.html) no *Guia do usuário do AWS CloudFormation *