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á.
Gerenciar ambientes do Elastic Beanstalk com a CLI do EB
Após instalar a CLI do EB e configurar o diretório do projeto, você estará pronto para criar um ambiente do Elastic Beanstalk usando a CLI do EB, implantar atualizações de origem e de configuração e extrair logs e eventos.
nota
A criação de ambientes com a CLI do EB exige uma função de serviço. É possível criar uma função de serviço criando um ambiente no console do Elastic Beanstalk. Se você não tiver uma função de serviço, a CLI do EB tentará criar uma ao executar eb create
.
O EB CLI retorna um código de saída zero (0
) para todos os comandos bem-sucedidos e um código de saída diferente de zero quando encontra algum erro.
Os exemplos a seguir usam uma pasta de projeto vazia denominada eb
que foi inicializada com a EB CLI para uso com um aplicativo Docker de exemplo.
Eb create
Para criar seu primeiro ambiente, execute eb create e siga os prompts. Se o diretório do projeto tiver código-fonte, a EB CLI vai empacotá-lo e implantá-lo em seu ambiente. Caso contrário, um aplicativo de exemplo será usado.
~/eb$ eb create
Enter Environment Name
(default is eb-dev): eb-dev
Enter DNS CNAME prefix
(default is eb-dev): eb-dev
WARNING: The current directory does not contain any source code. Elastic Beanstalk is launching the sample application instead.
Environment details for: elasticBeanstalkExa-env
Application name: elastic-beanstalk-example
Region: us-west-2
Deployed Version: Sample Application
Environment ID: e-j3pmc8tscn
Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2
Tier: WebServer-Standard
CNAME: eb-dev.elasticbeanstalk.com
Updated: 2015-06-27 01:02:24.813000+00:00
Printing Status:
INFO: createEnvironment is starting.
-- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.
O ambiente pode levar vários minutos para ficar pronto. Pressione Ctrl+C para retornar à linha de comando enquanto o ambiente é criado.
Eb status
Execute eb status para ver o status atual do seu ambiente. Quando o status é ready
, o aplicativo de exemplo está disponível em elasticbeanstalk.com, e o ambiente está pronto para ser atualizado.
~/eb$ eb status
Environment details for: elasticBeanstalkExa-env
Application name: elastic-beanstalk-example
Region: us-west-2
Deployed Version: Sample Application
Environment ID: e-gbzqc3jcra
Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2
Tier: WebServer-Standard
CNAME: elasticbeanstalkexa-env.elasticbeanstalk.com
Updated: 2015-06-30 01:47:45.589000+00:00
Status: Ready
Health: Green
Eb health
Use o comando eb health para visualizar as informações de integridade sobre as instâncias em seu ambiente e o estado geral dele. Use a opção --refresh
para visualizar a integridade em uma exibição interativa que é atualizada a cada 10 segundos.
~/eb$ eb health
api Ok 2016-09-15 18:39:04
WebServer Java 8
total ok warning degraded severe info pending unknown
3 3 0 0 0 0 0 0
instance-id status cause health
Overall Ok
i-0ef05ec54918bf567 Ok
i-001880c1187493460 Ok
i-04703409d90d7c353 Ok
instance-id r/sec %2xx %3xx %4xx %5xx p99 p90 p75 p50 p10
Overall 8.6 100.0 0.0 0.0 0.0 0.083* 0.065 0.053 0.040 0.019
i-0ef05ec54918bf567 2.9 29 0 0 0 0.069* 0.066 0.057 0.050 0.023
i-001880c1187493460 2.9 29 0 0 0 0.087* 0.069 0.056 0.050 0.034
i-04703409d90d7c353 2.8 28 0 0 0 0.051* 0.027 0.024 0.021 0.015
instance-id type az running load 1 load 5 user% nice% system% idle% iowait%
i-0ef05ec54918bf567 t2.micro 1c 23 mins 0.19 0.05 3.0 0.0 0.3 96.7 0.0
i-001880c1187493460 t2.micro 1a 23 mins 0.0 0.0 3.2 0.0 0.3 96.5 0.0
i-04703409d90d7c353 t2.micro 1b 1 day 0.0 0.0 3.6 0.0 0.2 96.2 0.0
instance-id status id version ago deployments
i-0ef05ec54918bf567 Deployed 28 app-bc1b-160915_181041 20 mins
i-001880c1187493460 Deployed 28 app-bc1b-160915_181041 20 mins
i-04703409d90d7c353 Deployed 28 app-bc1b-160915_181041 27 mins
Eb events
Use eb events para ver uma lista de eventos emitidos pelo Elastic Beanstalk.
~/eb$ eb events
2015-06-29 23:21:09 INFO createEnvironment is starting.
2015-06-29 23:21:10 INFO Using elasticbeanstalk-us-east-2-EXAMPLE as Amazon S3 storage bucket for environment data.
2015-06-29 23:21:23 INFO Created load balancer named: awseb-e-g-AWSEBLoa-EXAMPLE
2015-06-29 23:21:42 INFO Created security group named: awseb-e-gbzqc3jcra-stack-AWSEBSecurityGroup-EXAMPLE
...
Eb logs
Use eb logs para extrair logs de uma instância em seu ambiente. Por padrão, o eb logs extrai os logs da primeira instância executada e exibe-os na saída padrão. Você pode especificar o ID de uma instância com a opção --instance para obter logs de uma instância específica.
A opção --all extrai os logs de todas as instâncias e salva-os nos subdiretórios em .elasticbeanstalk/logs
.
~/eb$ eb logs --all
Retrieving logs...
Logs were saved to /home/local/ANT/mwunderl/ebcli/environments/test/.elasticbeanstalk/logs/150630_201410
Updated symlink at /home/local/ANT/mwunderl/ebcli/environments/test/.elasticbeanstalk/logs/latest
Eb open
Para abrir o site do ambiente em um navegador, use eb open:
~/eb$ eb open
Em um ambiente em janelas, seu navegador padrão é aberto em uma nova janela. Em um ambiente de terminal, um navegador de linha de comando (por exemplo, w3m) será usado, se disponível.
Eb deploy
Assim que o ambiente estiver pronto, você poderá atualizá-lo usando eb deploy.
Esse comando funciona melhor com algum código-fonte para empacotamento e implantação, portanto, para este exemplo, criamos um Dockerfile
no diretório do projeto com o seguinte conteúdo:
~/eb/Dockerfile
FROM ubuntu:12.04
RUN apt-get update
RUN apt-get install -y nginx zip curl
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN curl -o /usr/share/nginx/www/master.zip -L https://codeload.github.com/gabrielecirulli/2048/zip/master
RUN cd /usr/share/nginx/www/ && unzip master.zip && mv 2048-master/* . && rm -rf 2048-master master.zip
EXPOSE 80
CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
Esse Dockerfile
implanta uma imagem do Ubuntu 12.04 e instala o jogo 2048
. Execute eb deploy para fazer upload do aplicativo em seu ambiente:
~/eb$ eb deploy
Creating application version archive "app-150630_014338".
Uploading elastic-beanstalk-example/app-150630_014338.zip to S3. This may take a while.
Upload Complete.
INFO: Environment update is starting.
-- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.
Quando você executa eb deploy, a EB CLI empacota o conteúdo do diretório do projeto e implanta-o em seu ambiente.
nota
Se você inicializou um repositório git na pasta do projeto, a EB CLI sempre implanta a confirmação mais recente, mesmo se você tem alterações pendentes. Confirme suas alterações antes de executar eb deploy para implantá-las em seu ambiente.
Eb config
Veja as opções de configuração disponíveis para o seu ambiente em execução com o comando eb config:
~/eb$ eb config
ApplicationName: elastic-beanstalk-example
DateUpdated: 2015-06-30 02:12:03+00:00
EnvironmentName: elasticBeanstalkExa-env
SolutionStackName: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2
settings:
AWSEBAutoScalingScaleDownPolicy.aws:autoscaling:trigger:
LowerBreachScaleIncrement: '-1'
AWSEBAutoScalingScaleUpPolicy.aws:autoscaling:trigger:
UpperBreachScaleIncrement: '1'
AWSEBCloudwatchAlarmHigh.aws:autoscaling:trigger:
UpperThreshold: '6000000'
...
Esse comando preenche uma lista de opções de configuração disponíveis em um editor de texto. Muitas das opções mostradas têm um valor null
. Elas não são definidas por padrão, mas podem ser modificadas para atualizar os recursos em seu ambiente. Para obter mais informações sobre essas opções, consulte Opções de configuração.
Eb terminate
Se você terminou de usar o ambiente por enquanto, execute eb terminate para encerrá-lo.
~/eb$ eb terminate
The environment "eb-dev" and all associated instances will be terminated.
To confirm, type the environment name: eb-dev
INFO: terminateEnvironment is starting.
INFO: Deleted CloudWatch alarm named: awseb-e-jc8t3pmscn-stack-AWSEBCloudwatchAlarmHigh-1XLMU7DNCBV6Y
INFO: Deleted CloudWatch alarm named: awseb-e-jc8t3pmscn-stack-AWSEBCloudwatchAlarmLow-8IVI04W2SCXS
INFO: Deleted Auto Scaling group policy named: arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:1753d43e-ae87-4df6-a405-11d31f4c8f97:autoScalingGroupName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingGroup-90TTS2ZL4MXV:policyName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingScaleUpPolicy-A070H1BMUQAJ
INFO: Deleted Auto Scaling group policy named: arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:1fd24ea4-3d6f-4373-affc-4912012092ba:autoScalingGroupName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingGroup-90TTS2ZL4MXV:policyName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingScaleDownPolicy-LSWFUMZ46H1V
INFO: Waiting for EC2 instances to terminate. This may take a few minutes.
-- Events -- (safe to Ctrl+C)
Para obter uma lista completa dos comandos da CLI do EB disponíveis, confira Referência de comandos da EB CLI.
Importante
Se você encerrar um ambiente, também deverá excluir quaisquer mapeamentos CNAME criados, pois outros clientes poderão reutilizar um nome de host disponível. Certifique-se de excluir os registros DNS que apontam para seu ambiente encerrado para evitar uma entrada de DNS pendente. Uma entrada de DNS pendente pode expor o tráfego da Internet destinado ao seu domínio a vulnerabilidades de segurança. Também pode apresentar outros riscos.
Para obter mais informações, consulte Proteção contra um registro de delegação pendente no Route 53 no Guia do desenvolvedor do Amazon Route 53. Você também pode aprender mais sobre entradas de DNS pendentes em Proteções de domínio aprimoradas para solicitações do Amazon CloudFront