Configuración de la CLI de EB - AWS Elastic Beanstalk

Configuración de la CLI de EB

Después de instalar la CLI de EB, puede configurar el directorio del proyecto y la CLI de EB ejecutando eb init.

En el siguiente ejemplo, se muestran los pasos de configuración cuando se ejecuta eb init por primera vez en una carpeta de proyecto llamada eb.

Para inicializar un proyecto de la CLI de EB

  1. En primer lugar, la CLI de EB le pide que seleccione una región. Escriba el número correspondiente a la región que desea utilizar y, a continuación, pulse Intro.

    ~/eb $ eb init Select a default region 1) us-east-1 : US East (N. Virginia) 2) us-west-1 : US West (N. California) 3) us-west-2 : US West (Oregon) 4) eu-west-1 : Europe (Ireland) 5) eu-central-1 : Europe (Frankfurt) 6) ap-south-1 : Asia Pacific (Mumbai) 7) ap-southeast-1 : Asia Pacific (Singapore) ... (default is 3): 3
  2. A continuación, proporcione la clave de acceso y la clave secreta para que la CLI de EB pueda administrar los recursos por usted. Las claves de acceso se crean en la consola de AWS Identity and Access Management. Si no tiene claves, consulte ¿Cómo obtengo credenciales de seguridad? en la Referencia general de Amazon Web Services.

    You have not yet set up your credentials or your credentials are incorrect. You must provide your credentials. (aws-access-id): AKIAJOUAASEXAMPLE (aws-secret-key): 5ZRIrtTM4ciIAvd4EXAMPLEDtm+PiPSzpoK
  3. Una aplicación de Elastic Beanstalk es un recurso que contiene un conjunto de versiones de la aplicación (código fuente), entornos y configuraciones guardadas y que está asociado con una única aplicación web. Cada vez que implementa el código fuente en Elastic Beanstalk con la CLI de EB, se crea una nueva versión de la aplicación y se agrega a la lista.

    Select an application to use 1) [ Create new Application ] (default is 1): 1
  4. El nombre de aplicación predeterminada es el nombre de la carpeta en la que se ejecuta eb init. Especifique un nombre que describa el proyecto.

    Enter Application Name (default is "eb"): eb Application eb has been created.
  5. Seleccione una plataforma que coincida con el lenguaje o el marco en el que se desarrolló la aplicación web. Si todavía no ha empezado a desarrollar la aplicación, seleccione la plataforma que le interese. Pronto aprenderá a lanzar una aplicación de ejemplo y siempre puede cambiar este ajuste con posterioridad.

    Select a platform. 1) Node.js 2) PHP 3) Python 4) Ruby 5) Tomcat 6) IIS 7) Docker 8) Multi-container Docker 9) GlassFish 10) Go 11) Java (default is 1): 1
  6. Elija yes (sí) para asignar un par de claves SSH a las instancias del entorno de Elastic Beanstalk. Esto le permite conectarse directamente a ellas para la solución de problemas.

    Do you want to set up SSH for your instances? (y/n): y
  7. Elija un par de claves existente o cree uno nuevo. Si desea utilizar eb init para crear un nuevo par de claves, ssh-keygen debe estar instalado en la máquina local y disponible desde la línea de comando. La CLI de EB registra automáticamente el nuevo par de claves en Amazon EC2 y almacena la clave privada localmente en una carpeta denominada .ssh en el directorio del usuario.

    Select a keypair. 1) [ Create new KeyPair ] (default is 1): 1

La instalación de la CLI de EB ya está configurada y lista para utilizarse. Consulte Administración de entornos de Elastic Beanstalk con la CLI de EB para obtener instrucciones sobre cómo crear y trabajar con un entorno de Elastic Beanstalk.

Ignorar archivos usando .ebignore

Puede indicar a la CLI de EB que omita determinados archivos del directorio del proyecto añadiendo el archivo .ebignore al directorio. Este archivo funciona como un archivo .gitignore. Cuando se implementa el directorio del proyecto en Elastic Beanstalk y se crea una nueva versión de la aplicación, la CLI de EB no incluye los archivos especificados por .ebignore en el paquete de código fuente que crea.

Si no existe .ebignore, pero sí existe .gitignore, la CLI de EB omite los archivos especificados en .gitignore. Si existe .ebignore, la CLI de EB no lee .gitignore.

Cuando .ebignore está presente, la CLI de EB no utiliza comandos git para crear su paquete de código fuente. Esto significa que la CLI de EB omite los archivos especificados en .ebignore e incluye todos los demás archivos. En concreto, incluye archivos de código fuente sin validar.

nota

En Windows, si se agrega un archivo .ebignore, la CLI de EB sigue enlaces simbólicos e incluye el archivo vinculado al crear un paquete de código fuente. Es un error conocido que se resolverá en una futura actualización.

Usar perfiles con nombre

Si guarda las credenciales como un perfil con nombre en un archivo credentials o config, puede utilizar la opción --profile para especificar explícitamente un perfil. Por ejemplo, el comando siguiente crea una nueva aplicación con el perfil user2.

$ eb init --profile user2

También puede cambiar el perfil predeterminado configurando la variable de entorno AWS_EB_PROFILE. Cuando esta variable está configurada, la CLI de EB lee las credenciales del perfil especificado en lugar de default o eb-cli.

Linux, macOS o Unix

$ export AWS_EB_PROFILE=user2

Windows

> set AWS_EB_PROFILE=user2

Implementar un artefacto en lugar de la carpeta del proyecto

Puede indicar a la CLI de EB que implemente un archivo ZIP o WAR que usted genere como parte de un proceso de compilación diferente añadiendo las siguientes líneas a .elasticbeanstalk/config.yml en la carpeta del proyecto.

deploy: artifact: path/to/buildartifact.zip

Si configura la CLI de EB en el repositorio de Git y no confirma el artefacto en el código fuente, use la opción --staged para implementar la última compilación.

~/eb$ eb deploy --staged

Ajustes de configuración y precedencia

La CLI de EB usa una cadena de provisión para buscar las credenciales de AWS en diversos lugares; por ejemplo, en las variables de entorno del sistema o del usuario y en los archivos de configuración de AWS.

La CLI de EB busca las credenciales y las opciones de configuración en el siguiente orden:

  1. Opciones de la línea de comandos: especifique un perfil con nombre mediante --profile para anular la configuración predeterminada.

  2. Variables de entorno: AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY.

  3. Archivo de credenciales de AWS: está situado en ~/.aws/credentials en los sistemas Linux y OS X, o en C:\Users\USERNAME\.aws\credentials en los sistemas Windows. Este archivo puede contener varios perfiles con nombre, además de un perfil predeterminado.

  4. El archivo de configuración de la CLI de AWS: está situado en ~/.aws/config en los sistemas Linux y OS X, o en C:\Users\USERNAME\.aws\config en los sistemas Windows. Este archivo puede contener un perfil predeterminado, perfiles con nombre y parámetros de configuración específicos de la CLI de AWS para cada uno.

  5. Archivo de configuración heredado de la CLI de EB: está situado en ~/.elasticbeanstalk/config en los sistemas Linux y OS X, o en C:\Users\USERNAME\.elasticbeanstalk\config en los sistemas Windows.

  6. Credenciales de perfil de instancia: estas credenciales pueden utilizarse en instancias Amazon EC2 con un rol de instancia asignado y se entregan a través del servicio de metadatos de Amazon EC2. El perfil de instancia debe tener permiso para usar Elastic Beanstalk.

Si el archivo de credenciales contiene un perfil con el nombre "eb-cli", la CLI de EB preferirá ese perfil frente al predeterminado. Si no se encuentran perfiles, o se encuentra un perfil pero no tiene permiso para utilizar Elastic Beanstalk, la CLI de EB le pedirá uno cuando especifique las claves.

Metadatos de instancia

Para utilizar la CLI de EB desde una instancia de Amazon EC2, cree un rol que tenga acceso a los recursos necesarios y asigne ese rol a la instancia cuando se lance. Lance la instancia e instale la CLI de EB mediante pip.

~$ sudo pip install awsebcli

pip viene preinstalado en Amazon Linux.

La CLI de EB lee las credenciales desde los metadatos de la instancia. Para obtener más información, consulte Permitir el acceso a los recursos de AWS a aplicaciones que se ejecutan en instancias de Amazon EC2 en la Guía de usuario de IAM.