Creación de enlaces entre entornos de Elastic Beanstalk - AWS Elastic Beanstalk

Creación de enlaces entre entornos de Elastic Beanstalk

A medida que la aplicación crece en tamaño y complejidad, es posible que quiera dividirla en componentes con diferentes ciclos de vida de desarrollo y operaciones. Con la ejecución de servicios pequeños que interactúen entre sí a través de una interfaz bien definida, los equipos pueden trabajar de forma independiente y las implementaciones pueden suponer menos riesgo. AWS Elastic Beanstalk le permite vincular sus entornos para compartir información entre los componentes que dependen unos de otros.

nota

Actualmente, Elastic Beanstalk admite enlaces de entorno para todas las plataformas excepto Multicontainer Docker.

Con los enlaces de entorno, puede definir las conexiones entre los entornos de los componentes de la aplicación como referencias con nombre. Cuando crea un entorno que define un enlace, Elastic Beanstalk establece una variable de entorno con el mismo nombre que el enlace. El valor de la variable es el punto de enlace que puede utilizar para conectarse al otro componente, que puede ser un servidor web o un entorno de trabajo.

Por ejemplo, si la aplicación se compone de un frontend que recopila direcciones de correo electrónico y un proceso de trabajo que envía un email de bienvenida a las direcciones de correo electrónico obtenidas por el frontend, puede crear un enlace con el proceso de trabajo del frontend y hacer que el frontend detecte automáticamente el punto de enlace (URL de la cola) del proceso de trabajo.

Defina los enlaces con otros entornos en un manifiesto de entorno, un archivo con formato YAML llamado env.yaml situado en la raíz del código fuente de la aplicación. En el siguiente manifiesto, se define un enlace con un entorno llamado "worker":

~/workspace/my-app/frontend/env.yaml

AWSConfigurationTemplateVersion: 1.1.0.0 EnvironmentLinks: "WORKERQUEUE": "worker"

Si se crea un entorno con una versión de la aplicación que incluye el manifiesto de entorno anterior, Elastic Beanstalk buscará un entorno llamado worker que pertenezca a la misma aplicación. Si ese entorno existe, Elastic Beanstalk crea una propiedad de entorno llamada WORKERQUEUE. El valor de WORKERQUEUE es la URL de la cola de Amazon SQS. La aplicación frontend puede leer esta propiedad igual que una variable de entorno. Para obtener más información, consulte Manifiesto del entorno (env.yaml).

Para utilizar enlaces de entorno, agregue un manifiesto de entorno al código fuente de la aplicación y cárguelo con la CLI de EB, la AWS CLI o un SDK. Si utiliza la AWS CLI o un SDK, defina la marca process cuando llame a CreateApplicationVersion:

$ aws elasticbeanstalk create-application-version --process --application-name my-app --version-label frontend-v1 --source-bundle S3Bucket="DOC-EXAMPLE-BUCKET",S3Key="front-v1.zip"

Esta opción le indica a Elastic Beanstalk que valide el manifiesto del entorno y los archivos de configuración del paquete de código fuente cuando se cree la versión de la aplicación. La CLI de EB establece esta marca automáticamente cuando hay un manifiesto de entorno en el directorio del proyecto.

Cree sus entornos con normalidad utilizando cualquier cliente. Cuando necesita terminar entornos, utilice primero el enlace. Si un entorno está vinculado a otro entorno, Elastic Beanstalk impedirá que el entorno vinculado se termine. Para anular esta medida de protección, utilice la marca ForceTerminate. Este parámetro está disponible en la AWS CLI como --force-terminate:

$ aws elasticbeanstalk terminate-environment --force-terminate --environment-name worker