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á.
Criar e atualizar grupos de ambientes do Elastic Beanstalk
Com a API ComposeEnvironments do AWS Elastic Beanstalk, você pode criar e atualizar grupos de ambientes do Elastic Beanstalk dentro de uma única aplicação. Cada ambiente do grupo pode executar um componente separado de um aplicativo de arquitetura orientada a serviços. A API Compose Environments
usa uma lista de versões do aplicativo e um nome de grupo opcional. O Elastic Beanstalk cria um ambiente para cada versão do aplicativo ou, se os ambientes já existem, implanta as versões do aplicativo neles.
Crie links entre os ambientes do Elastic Beanstalk para designar um ambiente como uma dependência do outro. Quando você cria um grupo de ambientes com a API Compose Environments
, o Elastic Beanstalk cria ambientes dependentes somente depois que suas dependências estão em execução. Para obter mais informações sobre links de ambiente, consulte Criar links entre ambientes do Elastic Beanstalk.
A API Compose Environments
usa um manifesto de ambiente para armazenar detalhes de configuração que são compartilhados por grupos de ambientes. Cada aplicativo do componente deve ter um arquivo de configuração env.yaml
em seu pacote de origem do aplicativo que especifique os parâmetros usados para criar o ambiente.
Compose Environments
requer que EnvironmentName
e SolutionStack
sejam especificados no manifesto de ambiente para cada aplicativo do componente.
Use a API Compose Environments
com a Elastic Beanstalk Command Line Interface (EB CLI), a AWS CLI ou um SDK. Para ver as instruções da EB CLI, consulte Gerenciar vários ambientes do Elastic Beanstalk como um grupo com a CLI do EB.
Uso da API Compose Environments
Por exemplo, você pode criar uma aplicação chamada Media Library
que permita aos usuários fazer upload e gerenciar imagens e vídeos armazenados no Amazon Simple Storage Service (Amazon S3). O aplicativo tem um ambiente de front-end, front
, que executa um aplicativo Web. Isso permite aos usuários fazer upload e download de arquivos individuais, visualizar sua biblioteca e iniciar trabalhos de processamento em lote.
Em vez de processar os trabalhos diretamente, a aplicação de front-end adiciona trabalhos a uma fila do Amazon SQS. O segundo ambiente, worker
, obtém trabalhos da fila e os processa. O worker
usa um tipo de instância G2, que tem uma GPU de alta performance e, ao mesmo tempo, front
pode ser executado em um tipo de instância genérico mais econômico.
Organize a pasta do projeto, Media Library
, em diretórios separados para cada componente, com cada diretório contendo um arquivo de definição de ambiente (env.yaml
) com o código-fonte de cada:
~/workspace/media-library
|-- front
| `-- env.yaml
`-- worker
`-- env.yaml
As seguintes listas mostram o arquivo env.yaml
para cada aplicativo do componente.
~/workspace/media-library/front/env.yaml
EnvironmentName: front+
EnvironmentLinks:
"WORKERQUEUE" : "worker+"
AWSConfigurationTemplateVersion: 1.1.0.0
EnvironmentTier:
Name: WebServer
Type: Standard
SolutionStack: 64bit Amazon Linux 2015.09 v2.0.4 running Java 8
OptionSettings:
aws:autoscaling:launchconfiguration:
InstanceType: m4.large
~/workspace/media-library/worker/env.yaml
EnvironmentName: worker+
AWSConfigurationTemplateVersion: 1.1.0.0
EnvironmentTier:
Name: Worker
Type: SQS/HTTP
SolutionStack: 64bit Amazon Linux 2015.09 v2.0.4 running Java 8
OptionSettings:
aws:autoscaling:launchconfiguration:
InstanceType: g2.2xlarge
Depois de criar uma versão do aplicativo para os componentes do aplicativo de front-end (front-v1
) e operador (worker-v1
), chame a API Compose Environments
com os nomes de versão. Neste exemplo, usamos a AWS CLI para chamar a API.
# Create application versions for each component:
~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label front-v1 --process --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="front-v1.zip"
{
"ApplicationVersion": {
"ApplicationName": "media-library",
"VersionLabel": "front-v1",
"Description": "",
"DateCreated": "2015-11-03T23:01:25.412Z",
"DateUpdated": "2015-11-03T23:01:25.412Z",
"SourceBundle": {
"S3Bucket": "amzn-s3-demo-bucket",
"S3Key": "front-v1.zip"
}
}
}
~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label worker-v1 --process --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="worker-v1.zip"
{
"ApplicationVersion": {
"ApplicationName": "media-library",
"VersionLabel": "worker-v1",
"Description": "",
"DateCreated": "2015-11-03T23:01:48.151Z",
"DateUpdated": "2015-11-03T23:01:48.151Z",
"SourceBundle": {
"S3Bucket": "amzn-s3-demo-bucket",
"S3Key": "worker-v1.zip"
}
}
}
# Create environments:
~$ aws elasticbeanstalk compose-environments --application-name media-library --group-name dev --version-labels front-v1 worker-v1
A terceira chamada cria dois ambientes, front-dev
e worker-dev
. A API cria os nomes dos ambientes ao concatenar o EnvironmentName
especificado no arquivo env.yaml
com a opção group name
especificada na chamada Compose Environments
, separados por um hífen. O tamanho total dessas duas opções e o hífen não deve exceder o máximo permitido de 23 caracteres do nome do ambiente.
A aplicação em execução no ambiente front-dev
pode acessar o nome da fila do Amazon SQS anexada ao ambiente worker-dev
lendo a variável WORKERQUEUE
. Para obter mais informações sobre links de ambiente, consulte Criar links entre ambientes do Elastic Beanstalk.