Definir as opções de configuração antes da criação do ambiente - AWS Elastic Beanstalk

Definir as opções de configuração antes da criação do ambiente

O AWS Elastic Beanstalk é compatível com um grande número de opções de configuração que permitem modificar as configurações aplicadas aos recursos do seu ambiente. Várias dessas opções têm valores padrão que podem ser substituídos para personalizar o ambiente. Outras opções podem ser configuradas para ativar recursos adicionais.

O Elastic Beanstalk é compatível com dois métodos de salvamento das definições de opção de configuração. Os arquivos de configuração no formato JSON ou YAML podem ser incluídos no código-fonte do aplicativo em um diretório chamado .ebextensions e implantados como parte do seu pacote de origem do aplicativo. Crie e gerencie os arquivos de configuração localmente.

Configurações salvas são modelos que você cria em um ambiente em execução ou no arquivo de opções do JSON e armazena no Elastic Beanstalk. As configurações salvas existentes também podem ser estendidas para criar uma nova configuração.

nota

As configurações definidas nos arquivos de configuração e as configurações salvas têm menor precedência do que as configurações definidas durante ou após a criação do ambiente, inclusive os valores recomendados aplicados pelo console do Elastic Beanstalk e pela CLI do EB. Consulte Precedência para obter detalhes.

As opções também podem ser especificadas em um documento JSON e fornecidas diretamente ao Elastic Beanstalk quando você criar ou atualizar um ambiente com a EB CLI ou a AWS CLI. As opções fornecidas diretamente ao Elastic Beanstalk dessa forma substituem todos os outros métodos.

Para uma lista completa de opções disponíveis, consulte Opções de configuração.

Arquivos de configuração (.ebextensions)

Use .ebextensions para configurar as opções necessárias ao funcionamento do aplicativo e forneça valores padrão para outras opções que podem ser substituídas em um nível mais alto de precedência. As opções especificadas em .ebextensions têm o nível mais baixo de precedência e são substituídas por configurações de qualquer outro nível.

Para usar arquivos de configuração, crie uma pasta chamada .ebextensions no nível superior do código-fonte do projeto. Adicione um arquivo com a extensão .config e especifique opções da seguinte maneira:

option_settings: - namespace: namespace option_name: option name value: option value - namespace: namespace option_name: option name value: option value

Por exemplo, o seguinte arquivo de configuração define o URL de verificação de integridade do aplicativo como /health:

healthcheckurl.config

option_settings: - namespace: aws:elasticbeanstalk:application option_name: Application Healthcheck URL value: /health

Em JSON:

{ "option_settings" : [ { "namespace" : "aws:elasticbeanstalk:application", "option_name" : "Application Healthcheck URL", "value" : "/health" } ] }

Isso configura o load balancer do Elastic Load Balancing em seu ambiente Elastic Beanstalk para fazer uma solicitação HTTP para o caminho /health de cada instância do EC2 a fim de determinar sua integridade.

nota

YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.

Inclua o diretório .ebextensions em seu Pacote de origem do aplicativo e implante-o no ambiente Elastic Beanstalk novo ou já existente.

Os arquivos de configuração oferecem suporte a várias seções, além de option_settings para personalizar o software e arquivos que são executados nos servidores em seu ambiente. Para obter mais informações, consulte .Ebextensions.

Configurações salvas

Crie uma configuração salva para salvar as configurações aplicadas a um ambiente existente durante ou após a criação do ambiente, usando o console do Elastic Beanstalk, a CLI do EB ou a CLI da AWS. As configurações salvas pertencem a um aplicativo e podem ser aplicadas a ambientes novos ou existentes desse aplicativo.

Console do Elastic Beanstalk

Para criar uma configuração salva (console do Elastic Beanstalk)

  1. Abra o console do Elastic Beanstalk e, na lista Regiões, selecione sua região da AWS.

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. Escolha Ações do ambiente e Save configuration (Salvar configuração).

  4. Use a caixa de diálogo na tela para concluir a ação.

As configurações salvas são armazenadas no bucket do S3 do Elastic Beanstalk em uma pasta com o mesmo nome do seu aplicativo. Por exemplo, as configurações de um aplicativo chamado my-app na região us-west-2 da conta número 123456789012 podem ser encontradas em s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app.

EB CLI

A EB CLI também fornece subcomandos para interagir com configurações salvas em eb config:

Para criar uma configuração salva (EB CLI)

  1. Salve a configuração atual associada ao ambiente:

    ~/project$ eb config save --cfg my-app-v1

    A EB CLI salva a configuração em ~/project/.elasticbeanstalk/saved_configs/my-app-v1.cfg.yml

  2. Modifique a configuração salva localmente, se necessário.

  3. Faça upload da configuração salva no S3:

    ~/project$ eb config put my-app-v1

CLI da AWS

Crie uma configuração salva de um ambiente em execução com aws elasticbeanstalk create-configuration-template

Para criar uma configuração salva (AWS CLI)

  1. Identifique o ID do ambiente Elastic Beanstalk com describe-environments:

    $ aws elasticbeanstalk describe-environments --environment-name my-env { "Environments": [ { "ApplicationName": "my-env", "EnvironmentName": "my-env", "VersionLabel": "89df", "Status": "Ready", "Description": "Environment created from the EB CLI using \"eb create\"", "EnvironmentId": "e-vcghmm2zwk", "EndpointURL": "awseb-e-v-AWSEBLoa-1JUM8159RA11M-43V6ZI1194.us-west-2.elb.amazonaws.com", "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.2 running Multi-container Docker 1.7.1 (Generic)", "CNAME": "my-env-nfptuqaper.elasticbeanstalk.com", "Health": "Green", "AbortableOperationInProgress": false, "Tier": { "Version": " ", "Type": "Standard", "Name": "WebServer" }, "HealthStatus": "Ok", "DateUpdated": "2015-10-01T00:24:04.045Z", "DateCreated": "2015-09-30T23:27:55.768Z" } ] }
  2. Salve a configuração atual do ambiente com create-configuration-template:

    $ aws elasticbeanstalk create-configuration-template --environment-id e-vcghmm2zwk --application-name my-app --template-name v1

O Elastic Beanstalk salva a configuração em seu bucket do Elastic Beanstalk no Amazon S3.

Documento JSON

Se você usar a AWS CLI para criar e atualizar ambientes, poderá também fornecer opções de configuração no formato JSON. Uma biblioteca de arquivos de configuração em JSON será útil se você usar a AWS CLI para criar e gerenciar ambientes.

Por exemplo, o seguinte documento JSON define o URL de verificação de integridade do aplicativo como /health:

~/ebconfigs/healthcheckurl.json

[ { "Namespace": "aws:elasticbeanstalk:application", "OptionName": "Application Healthcheck URL", "Value": "/health" } ]

Configuração da EB CLI

Além de oferecer suporte a configurações salvas e configuração direta do ambiente com comandos eb config, a EB CLI tem um arquivo de configuração com uma opção chamada default_ec2_keyname que você pode usar para especificar um par de chaves do Amazon EC2 para acesso SSH a instâncias do seu ambiente. A EB CLI usa essa opção para definir a opção de configuração EC2KeyName no namespace aws:autoscaling:launchconfiguration.

~/workspace/my-app/.elasticbeanstalk/config.yml

branch-defaults: master: environment: my-env develop: environment: my-env-dev deploy: artifact: ROOT.war global: application_name: my-app default_ec2_keyname: my-keypair default_platform: Tomcat 8 Java 8 default_region: us-west-2 profile: null sc: git