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

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

Você pode modificar as configurações de opções em um ambiente em execução, aplicando configurações salvas, carregando um novo pacote de origem com os arquivos de configuração (.ebextensions) ou usando um documento JSON. A EB CLI e o console do Elastic Beanstalk também têm a funcionalidade específica ao cliente para configurar e atualizar as opções de configuração.

Ao definir ou alterar uma opção de configuração, você pode acionar uma atualização completa do ambiente, dependendo da severidade da alteração. Por exemplo, alterações nas opções no aws:autoscaling:launchconfiguration, como InstanceType, exigem que as instâncias do Amazon EC2 em seu ambiente sejam provisionadas novamente. Isso aciona uma atualização contínua. Outras alterações de configuração podem ser aplicadas sem qualquer interrupção ou novo provisionamento.

Você pode remover as configurações de opção de um ambiente com os comandos da EB CLI ou da AWS CLI. Remover uma opção que foi definida diretamente em um ambiente em um nível de API permite que as configurações em arquivos de configuração, que são, caso contrário, mascaradas por configurações aplicadas diretamente a um ambiente, surjam e entrem em vigor.

As definições em configurações salvas e em arquivos de configuração podem ser substituídas definindo a mesma opção diretamente no ambiente com um dos outros métodos de configuração. No entanto, essas definições só podem ser removidas completamente aplicando uma atualização de uma configuração salva ou de um arquivo de configuração. Quando uma opção não for definida em uma configuração salva, em um arquivo de configuração ou diretamente em um ambiente, o valor padrão será aplicado, se houver. Consulte Precedência para obter detalhes.

O console do Elastic Beanstalk

É possível atualizar as definições de opções de configuração no console do Elastic Beanstalk implantando um pacote de origem do aplicativo que contenha os arquivos de configuração, aplicando uma configuração salva ou modificando o ambiente diretamente com a página Configuration (Configuração) no console de gerenciamento do ambiente.

Usar arquivos de configuração (.ebextensions)

Atualize os arquivos de configuração em seu diretório de origem, crie um novo pacote de origem e implante a nova versão em seu ambiente Elastic Beanstalk para aplicar as alterações.

Para obter detalhes sobre arquivos de configuração, consulte .Ebextensions.

Para implantar um pacote de origem

  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. Na página de visão geral do ambiente, escolha Upload and deploy (Fazer upload e implantar).

  4. Use a caixa de diálogo na tela para carregar o pacote de origem.

  5. Escolha Deploy.

  6. Quando a implantação for concluída, é possível escolher o URL do site para abri-lo em uma nova guia.

As alterações feitas em arquivos de configuração não substituem as configurações de opção em configurações salvas ou em configurações aplicadas diretamente ao ambiente no nível de API. Consulte Precedência para obter mais detalhes.

Usar uma configuração salva

Aplique uma configuração salva a um ambiente em execução para aplicar as configurações de opção que ele define.

Para aplicar uma configuração salva a um ambiente em execução (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 Aplicativos e escolha o nome do aplicativo na lista.

    nota

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

  3. No painel de navegação, encontre o nome do aplicativo e escolha Saved configurations (Configurações salvas).

  4. Selecione a configuração salva que deseja aplicar e escolha Load (Carregar).

  5. Selecione um ambiente e escolha Load.

As configurações definidas em uma configuração salva substituem as configurações em arquivos de configuração e são substituídas pelas configurações definidas usando o console de gerenciamento do ambiente.

Consulte Configurações salvas para obter detalhes sobre como criar configurações salvas.

Usar o console do Elastic Beanstalk

O console do Elastic Beanstalk apresenta várias opções de configuração na página Configuration (Configuração) para cada ambiente.

Para alterar as opções de configuração em um ambiente em execução (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. No painel de navegação, escolha Configuration (Configuração).

  4. Encontre a página de configuração a qual deseja editar:

    • Se você vir a opção que lhe interessa ou souber a categoria de configuração em que ela está, escolha Edit (Editar) na categoria de configuração dela.

    • Para procurar uma opção, habilite a Table View (Exibição em tabela) e insira os termos de pesquisa na caixa de pesquisa. Conforme você digita, a lista diminui e mostra apenas as opções que correspondem aos seus termos de pesquisa.

      Quando vir a opção que você está procurando, escolha Edit (Editar) na categoria de configuração em que ela está.

      
                  Exibição em tabela da página de visão geral da configuração do console do Elastic Beanstalk, mostrando uma opção de pesquisa
  5. Altere as configurações e selecione Save (Salvar).

  6. Repita as duas etapas anteriores em outras categorias de configuração, conforme necessário.

  7. Selecione Apply (Aplicar).

As alterações feitas nas opções de configuração no console de gerenciamento do ambiente são aplicadas diretamente ao ambiente. Essas alterações substituem as definições das mesmas opções em arquivos de configuração ou em configurações salvas. Para obter mais detalhes, consulte Precedence (Precedência).

Para obter detalhes sobre como alterar as opções de configuração em um ambiente em execução usando o console do Elastic Beanstalk, consulte os tópicos em Configurar ambientes do Elastic Beanstalk.

A EB CLI

Você pode atualizar as definições de opção de configuração com a EB CLI implantando um código-fonte que contenha os arquivos de configuração, aplicando as definições de uma configuração salva ou modificando a configuração do ambiente diretamente com o comando eb config.

Usar arquivos de configuração (.ebextensions)

Inclua os arquivos .config na pasta do seu projeto em .ebextensions para implantá-los com o código do seu aplicativo.

Para obter detalhes sobre arquivos de configuração, consulte .Ebextensions.

~/workspace/my-app/ |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- .elasticbeanstalk | `-- config.yml |-- index.php `-- styles.css

Implante seu código-fonte com eb deploy.

~/workspace/my-app$ eb deploy

Usar uma configuração salva

Você pode usar o comando eb config para aplicar uma configuração salva a um ambiente em execução. Use a opção --cfg com o nome da configuração salva para aplicar suas configurações ao seu ambiente.

$ eb config --cfg v1

Neste exemplo, v1 é o nome de um criado anteriormente e o arquivo de configuração salvo.

As configurações aplicadas a um ambiente com esse comando substituem as configurações que foram aplicadas durante a criação do ambiente e as configurações definidas em arquivos de configuração em seu pacote de origem do aplicativo.

O uso do eb config

O comando eb config da EB CLI permite que você defina e remova configurações de opção diretamente em um ambiente usando um editor de texto.

Quando você executa eb config, a EB CLI exibe as configurações aplicadas em seu ambiente de todas as origens, inclusive de arquivos de configuração, configurações salvas, valores recomendados, opções definidas diretamente no ambiente e padrões de API.

nota

eb config não exibe as propriedades do ambiente. Para definir as propriedades do ambiente que você pode ler a partir do seu aplicativo, use eb setenv.

O exemplo a seguir mostra as configurações aplicadas no namespace aws:autoscaling:launchconfiguration. Essas configurações incluem:

  • Dois valores recomendados, para IamInstanceProfile e InstanceType, aplicados pela EB CLI durante a criação do ambiente.

  • A opção EC2KeyNamedefinida diretamente no ambiente durante a criação com base na configuração do repositório.

  • Os valores padrão da API para as outras opções.

ApplicationName: tomcat DateUpdated: 2015-09-30 22:51:07+00:00 EnvironmentName: tomcat SolutionStackName: 64bit Amazon Linux 2015.03 v2.0.1 running Tomcat 8 Java 8 settings: ... aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: t2.micro ...

Para definir ou alterar as opções de configuração com eb config

  1. Execute eb config para visualizar a configuração de seu ambiente.

    ~/workspace/my-app/$ eb config
  2. Altere qualquer um dos valores de configuração usando o editor de texto padrão.

    aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: t2.medium
  3. Salve o arquivo de configuração temporário e saia.

  4. A EB CLI atualiza a configuração do ambiente.

Definir as opções de configuração com eb config substitui as definições de todas as outras fontes.

Você também pode remover as opções de seu ambiente com eb config.

Para remover as opções de configuração (EB CLI)

  1. Execute eb config para visualizar a configuração de seu ambiente.

    ~/workspace/my-app/$ eb config
  2. Substitua qualquer valor mostrado com a string null. Você também pode excluir toda a linha que contém a opção que você deseja remover.

    aws:autoscaling:launchconfiguration: BlockDeviceMappings: null EC2KeyName: my-key IamInstanceProfile: aws-elasticbeanstalk-ec2-role ImageId: ami-1f316660 InstanceType: null
  3. Salve o arquivo de configuração temporário e saia.

  4. A EB CLI atualiza a configuração do ambiente.

Remover as opções de seu ambiente com eb config permite que as configurações para as mesmas opções surjam a partir dos arquivos de configuração em seu pacote de origem do aplicativo. Consulte Precedência para obter mais detalhes.

O uso do eb setenv

Para definir as propriedades de ambiente com a EB CLI, use eb setenv.

~/workspace/my-app/$ eb setenv ENVVAR=TEST INFO: Environment update is starting. INFO: Updating environment my-env's configuration settings. INFO: Environment health has transitioned from Ok to Info. Command is executing on all instances. INFO: Successfully deployed new configuration to environment.

Esse comando define as propriedades de ambiente no aws:elasticbeanstalk:application:environment namespace. As propriedades do ambiente definidas com eb setenv ficam disponíveis para seu aplicativo após um curto processo de atualização.

Visualize as propriedades do ambiente definidas em seu ambiente com eb printenv.

~/workspace/my-app/$ eb printenv Environment Variables: ENVVAR = TEST

A AWS CLI

Você pode atualizar as definições da opção de configuração com a AWS CLI implantando um código-fonte que contenha os arquivos de configuração, aplicando uma configuração salva armazenada remotamente ou modificando o ambiente diretamente com o comando aws elasticbeanstalk update-environment.

Usar arquivos de configuração (.ebextensions)

Para aplicar os arquivos de configuração em um ambiente em execução com a AWS CLI, inclua-os no pacote de origem do aplicativo que você carregar no Amazon S3.

Para obter detalhes sobre arquivos de configuração, consulte .Ebextensions.

~/workspace/my-app-v1.zip |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- index.php `-- styles.css

Para carregar um pacote de origem do aplicativo e aplicá-lo em um ambiente em execução (AWS CLI)

  1. Se você ainda não tiver um bucket do Elastic Beanstalk no Amazon S3, crie um com create-storage-location:

    $ aws elasticbeanstalk create-storage-location { "S3Bucket": "elasticbeanstalk-us-west-2-123456789012" }
  2. Faça upload do pacote de origem do aplicativo para o Amazon S3.

    $ aws s3 cp sourcebundlev2.zip s3://elasticbeanstalk-us-west-2-123456789012/my-app/sourcebundlev2.zip
  3. Crie a versão do aplicativo.

    $ aws elasticbeanstalk create-application-version --application-name my-app --version-label v2 --description MyAppv2 --source-bundle S3Bucket="elasticbeanstalk-us-west-2-123456789012",S3Key="my-app/sourcebundlev2.zip"
  4. Atualize o ambiente.

    $ aws elasticbeanstalk update-environment --environment-name my-env --version-label v2

Usar uma configuração salva

Você pode aplicar uma configuração salva em um ambiente em execução com a opção --template-name no comando aws elasticbeanstalk update-environment.

A configuração salva deve estar em seu bucket do Elastic Beanstalk em um caminho com nome baseado no aplicativo sob resources/templates. Por exemplo, o modelo v1 para o aplicativo my-app na Região Oeste dos EUA (Oregon) (us-west-2) para a conta 123456789012 está localizado em s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app/v1

Para aplicar uma configuração salva em um ambiente em execução (AWS CLI)

  • Especifique a configuração salva em uma chamada update-environment com a opção --template-name.

    $ aws elasticbeanstalk update-environment --environment-name my-env --template-name v1

O Elastic Beanstalk coloca as configurações salvas neste local quando você as cria com aws elasticbeanstalk create-configuration-template. Você também pode modificar as configurações salvas localmente e colocá-las nesse local por conta própria.

Usar as opções de linha de comando

Para alterar as opções de configuração com um documento JSON (AWS CLI)

  1. Defina as configurações de opção no formato JSON em um arquivo local.

  2. Execute update-environment com a opção --option-settings.

    $ aws elasticbeanstalk update-environment --environment-name my-env --option-settings file://~/ebconfigs/as-zero.json

Neste exemplo, as-zero.json define as opções que configuram o ambiente com um mínimo e um máximo de instâncias zero. Isso interrompe as instâncias no ambiente sem encerrar o ambiente.

~/ebconfigs/as-zero.json

[ { "Namespace": "aws:autoscaling:asg", "OptionName": "MinSize", "Value": "0" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MaxSize", "Value": "0" }, { "Namespace": "aws:autoscaling:updatepolicy:rollingupdate", "OptionName": "RollingUpdateEnabled", "Value": "false" } ]
nota

Definir as opções de configuração com update-environment substitui as definições de todas as outras fontes.

Você também pode remover as opções de seu ambiente com update-environment.

Para remover as opções de configuração (AWS CLI)

  • Execute o comando update-environment com a opção --settings-to-remove.

    $ aws elasticbeanstalk update-environment --environment-name my-env --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType

Remover as opções de seu ambiente com update-environment permite que as configurações para as mesmas opções surjam a partir dos arquivos de configuração em seu pacote de origem do aplicativo. Se uma opção não for configurada usando qualquer um desses métodos, o valor padrão da API será aplicado, se houver. Consulte Precedência para obter mais detalhes.