AWS Elastic Beanstalk
Guia do desenvolvedor

Criar um pacote de origem do aplicativo

Quando você usa o console do AWS Elastic Beanstalk para implantar um novo aplicativo ou uma versão do aplicativo, é preciso fazer upload de 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 512 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.

Se você estiver implantando seu aplicativo com a interface da 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 de modo correto. Para obter mais informações, consulte A interface da linha de comando do Elastic Beanstalk (EB CLI), Criar e implantar aplicativos Java no AWS Elastic Beanstalk e O AWS Toolkit for Visual Studio.

Criação de pacote de origem a partir da linha de comando

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

Criação de pacote de origem com o Git

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.

Compactação de arquivos no Mac OS X Finder ou Windows Explorer

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 Criação de pacote de origem a partir da linha de comando.

exemplo

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.

Para compactar arquivos no Mac OS X Finder

  1. Abra a pasta de projeto de nível superior e selecione todos os arquivos e subpastas contidos nela. Não selecione a própria pasta de nível superior.

    
            Arquivos selecionados no Mac OS X Finder
  2. Clique com o botão direito do mouse nos arquivos selecionados e escolha Comprimir X itens, em que X é o número de arquivos e subpastas que você selecionou.

    
            Compactação de arquivos no Mac OS X Finder

Para compactar arquivos no Windows Explorer

  1. Abra a pasta de projeto de nível superior e selecione todos os arquivos e subpastas contidos nela. Não selecione a própria pasta de nível superior.

    
            Arquivos selecionados no Windows Explorer
  2. Clique com o botão direito do mouse nos arquivos selecionados, escolha Enviar para e Pasta compactada (zipada).

    
            Compactação de arquivos no Windows Explorer

Criação de pacote de origem para um aplicativo .NET

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

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 How to: Create a Web Deployment Package in Visual Studio.

    Importante

    Ao criar o pacote de implantação da Web, inicie o Nome do site com Default Web Site.

  • Se você tem um projeto .NET, pode criar o pacote de implantação usando o comando msbuild conforme mostrado 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.

    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

Teste do pacote de origem

Você pode 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.

Para testar a extração de arquivos no Mac OS X ou Linux

  1. Abra uma janela do terminal (Mac OS X) ou conecte-se ao servidor Linux. Navegue até o diretório que contém o pacote de origem.

  2. Com uso do comando unzip ou tar xf, descompacte o arquivo.

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

    nota

    Se você usar o Mac OS X Finder para descompactar o arquivo, será criada uma nova pasta de nível superior, independentemente de como você tenha estruturado o arquivo. Para obter melhores resultados, use a linha de comando.

Para testar a extração de arquivos no Windows

  1. Faça download ou instale um programa que permita extrair arquivos compactados por meio da linha de comando. Por exemplo, faça download do programa unzip.exe gratuito em http://stahlforce.com/dev/index.php?tool=zipunzip.

  2. Se necessário, copie o arquivo executável no diretório que contém o pacote de origem. Se você tiver instalado uma ferramenta em todo o sistema, poderá ignorar esta etapa.

  3. Com o uso do comando apropriado, descompacte o arquivo. Se você fez download do unzip.exe usando o link da etapa 1, o comando é unzip <archive-name>.

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