

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

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