Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creación y actualización de grupos de entornos de Elastic Beanstalk
Con la AWS Elastic Beanstalk Compose Environments
API, puede crear y actualizar grupos de entornos de Elastic Beanstalk en una sola aplicación. Cada entorno del grupo puede ejecutar un componente independiente de una aplicación que tenga una arquitectura orientada a servicios. La API Compose
Environments
toma una lista de las versiones de la aplicación y un nombre de grupo opcional. Elastic Beanstalk crea un entorno para cada versión de la aplicación o, si los entornos ya existen, implementa las versiones de la aplicación en ellos.
Cree enlaces entre los entornos de Elastic Beanstalk para definir un entorno como una dependencia de otro. Cuando se genera un grupo de entornos con la API Compose Environments
, Elastic Beanstalk solamente crea entornos dependientes una vez que sus dependencias están listas y en ejecución. Para obtener más información acerca de los enlaces del entorno, consulte Creación de enlaces entre entornos de Elastic Beanstalk.
La API Compose Environments
utiliza un manifiesto de entorno para guardar los detalles de la configuración que comparten los grupos de entornos. Cada aplicación integrante debe tener un archivo de configuración env.yaml
en el paquete de código fuente que especifique los parámetros utilizados para crear el entorno.
Compose Environments
requiere que se especifique EnvironmentName
y SolutionStack
en el manifiesto del entorno de cada aplicación integrante.
Puede usar la Compose Environments
API con la interfaz de línea de comandos de Elastic Beanstalk (EB CLI) AWS CLI, el o un SDK. Consulte Administración de múltiples entornos Elastic Beanstalk como un grupo con la CLI de EB para obtener instrucciones sobre la CLI de EB.
Uso de la API Compose Environments
Por ejemplo, puede crear una aplicación llamada Media Library
que permita a los usuarios cargar y administrar las imágenes y los vídeos guardados en Amazon Simple Storage Service (Amazon S3). La aplicación tendrá un entorno front-end, front
, donde se ejecutará una aplicación web que permitirá a los usuarios cargar y descargar archivos individuales, consultar la biblioteca e iniciar trabajos de procesamiento por lotes.
En lugar de procesar los trabajos directamente, la aplicación front-end los agregará a una cola de Amazon SQS. El segundo entorno, worker
, extraerá los trabajos de la cola y los procesará. worker
utilizará un tipo de instancia G2 que tenga una GPU de alto rendimiento, mientras que front
puede ejecutarse en un tipo de instancia genérica más rentable.
La carpeta del proyecto, Media Library
, debe organizarse en diferentes directorios para cada componente, donde cada directorio tendrá un archivo de definición del entorno (env.yaml
) con su código fuente:
~/workspace/media-library
|-- front
| `-- env.yaml
`-- worker
`-- env.yaml
A continuación se muestra el archivo env.yaml
de cada aplicación integrante.
~/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
Después de crear una versión de la aplicación para los componentes de aplicación front-end (front-v1
) y de trabajo (worker-v1
), llame a la API Compose Environments
con los nombres de las versiones. En este ejemplo, utilizamos la AWS CLI para llamar a la API.
# Create application versions for each component:
~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label front-v1 --process --source-bundle S3Bucket="DOC-EXAMPLE-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": "DOC-EXAMPLE-BUCKET",
"S3Key": "front-v1.zip"
}
}
}
~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label worker-v1 --process --source-bundle S3Bucket="DOC-EXAMPLE-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": "DOC-EXAMPLE-BUCKET",
"S3Key": "worker-v1.zip"
}
}
}
# Create environments:
~$ aws elasticbeanstalk compose-environments --application-name media-library --group-name dev --version-labels front-v1 worker-v1
La tercera llamada crea dos entornos: front-dev
y worker-dev
. La API crea los nombres de los entornos concatenando el valor de EnvironmentName
especificado en el archivo env.yaml
con la opción group name
especificada en la llamada a Compose Environments
, separados por un guion. La longitud total de estas dos opciones y el guion no debe superar el máximo permitido para el nombre del entorno, que es de 23 caracteres.
La aplicación que se ejecuta en el entorno front-dev
puede obtener acceso al nombre de la cola de Amazon SQS asociada al entorno worker-dev
a través de la variable WORKERQUEUE
. Para obtener más información acerca de los enlaces del entorno, consulte Creación de enlaces entre entornos de Elastic Beanstalk.