Usar la CLI de EB con AWS CodeCommit - AWS Elastic Beanstalk

Usar la CLI de EB con AWS CodeCommit

Puede utilizar la CLI de EB para implementar la aplicación directamente desde el repositorio de AWS CodeCommit. Con CodeCommit, puede cargar únicamente los cambios del repositorio en la implementación, en lugar de cargar todo el proyecto. De este modo, ahorrará tiempo y ancho de banda si tiene un proyecto de gran tamaño o una conectividad a Internet limitada. La CLI de EB inserta las confirmaciones locales y las utiliza para crear versiones de la aplicación cuando se utiliza eb create o eb deploy.

Para poder implementar los cambios, la integración con CodeCommit requiere que confirme primero los cambios. Sin embargo, a medida que realice el desarrollo o la depuración, es posible que no quiera insertar los cambios que aún no ha confirmado. Puede evitar confirmar los cambios almacenándolos provisionalmente y utilizando eb deploy --staged (que realiza una implementación estándar). O puede confirmar los cambios primero en una ramificación de desarrollo o pruebas y fusionarlos después en una ramificación maestra cuando el código esté listo. Con eb use, puede configurar la CLI de EB para realizar la implementación en un entorno de la ramificación de desarrollo y en otro de la ramificación maestra.

nota

Algunas regiones no ofrecen CodeCommit. La integración entre Elastic Beanstalk y CodeCommit no funciona en estas regiones.

Para obtener información acerca de los servicios de AWS que se ofrecen en cada región, consulte la Tabla de regiones.

Requisitos previos

Para utilizar CodeCommit con AWS Elastic Beanstalk, necesita un repositorio Git local (ya sea uno que ya tenga o uno nuevo que haya creado) con al menos una confirmación, permiso para usar CodeCommit, y un entorno de Elastic Beanstalk en una región compatible con CodeCommit. El entorno y el repositorio deben estar en la misma región.

Para inicializar el repositorio de Git

  1. Ejecute git init en la carpeta del proyecto.

    ~/my-app$ git init
  2. Almacene provisionalmente los archivos del proyecto con git add.

    ~/my-app$ git add .
  3. Confirme los cambios con git commit.

    ~/my-app$ git commit -m "Elastic Beanstalk application"

Crear un repositorio de CodeCommit con la CLI de EB

Para comenzar a utilizar CodeCommit, ejecute eb init. Durante la configuración del repositorio, la CLI de EB le pide que utilice CodeCommit para almacenar el código y acelerar las implementaciones. Aunque anteriormente configurara el proyecto con eb init, puede ejecutarlo de nuevo para configurar CodeCommit.

Para crear un repositorio CodeCommit con la CLI de EB

  1. Ejecute eb init en la carpeta del proyecto. Durante la configuración, la CLI de EB le pregunta si desea usar CodeCommit para almacenar el código y acelerar las implementaciones. Aunque anteriormente configurara el proyecto con eb init, puede volver a ejecutarlo de nuevo para configurar CodeCommit. Escriba y en el indicador para configurar CodeCommit.

    ~/my-app$ eb init Note: Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service. To learn more, see Docs: https://aws.amazon.com/codecommit/ Do you wish to continue with CodeCommit? (y/n)(default is n): y
  2. Seleccione Create new Repository (Crear nuevo repositorio).

    Select a repository 1) my-repo 2) [ Create new Repository ] (default is 2): 2
  3. Escriba un nombre de repositorio o pulse Intro para aceptar el nombre predeterminado.

    Enter Repository Name (default is "codecommit-origin"): my-app Successfully created repository: my-app
  4. Seleccione una ramificación existente para las confirmaciones o utilice la CLI de EB para crear una nueva ramificación.

    Enter Branch Name ***** Must have at least one commit to create a new branch with CodeCommit ***** (default is "master"): ENTER Successfully created branch: master

Implementación desde su repositorio CodeCommit

Cuando configura CodeCommit con el repositorio de la CLI de EB, la CLI de EB utiliza el contenido del repositorio para crear paquetes de código fuente. Cuando ejecuta eb deploy o eb create, la CLI de EB inserta nuevas confirmaciones y utiliza la revisión HEAD de la ramificación para crear el archivo que se implementa en las instancias EC2 del entorno.

Para utilizar la integración de CodeCommit con la CLI de EB

  1. Cree un nuevo entorno con eb create.

    ~/my-app$ eb create my-app-env Starting environment deployment via CodeCommit --- Waiting for application versions to be pre-processed --- Finished processing application version app-ac1ea-161010_201918 Setting up default branch Environment details for: my-app-env Application name: my-app Region: us-east-2 Deployed Version: app-ac1ea-161010_201918 Environment ID: e-pm5mvvkfnd Platform: 64bit Amazon Linux 2016.03 v2.1.6 running Java 8 Tier: WebServer-Standard CNAME: UNKNOWN Updated: 2016-10-10 20:20:29.725000+00:00 Printing Status: INFO: createEnvironment is starting. ...

    La CLI de EB utiliza la última confirmación de la ramificación monitorizada para crear la versión de la aplicación que se va a implementar en el entorno.

  2. Si hay nuevas confirmaciones locales, utilice eb deploy para insertar las confirmaciones e implementarlas en el entorno.

    ~/my-app$ eb deploy Starting environment deployment via CodeCommit INFO: Environment update is starting. INFO: Deploying new version to instance(s). INFO: New application version was deployed to running EC2 instances. INFO: Environment update completed successfully.
  3. Si desea probar los cambios antes de confirmarlo, utilice la opción --staged para implementar los cambios que agregó en el área de ensayo con git add.

    ~/my-app$ git add new-file ~/my-app$ eb deploy --staged

    Si utiliza la opción --staged, se realiza una implementación estándar y se omite CodeCommit.

Configuración de entornos y ramificaciones adicionales

La configuración de CodeCommit se aplica a una única ramificación. Puede utilizar eb use y eb codesource para configurar otras ramificaciones o modificar la configuración de la ramificación actual.

Para configurar la integración de CodeCommit con la CLI de EB

  1. Para cambiar la ramificación remota, utilice la opción --source del comando eb use.

    ~/my-app$ eb use test-env --source my-app/test
  2. Para crear una nueva ramificación y el entorno, extraiga una nueva ramificación, insértela en CodeCommit, cree el entorno y utilice eb use para conectar la ramificación local, la ramificación remota y el entorno.

    ~/my-app$ git checkout -b production ~/my-app$ git push --set-upstream production ~/my-app$ eb create production-env ~/my-app$ eb use --source my-app/production production-env
  3. Para configurar CodeCommit de forma interactiva, utilice eb codesource codecommit.

    ~/my-app$ eb codesource codecommit Current CodeCommit setup: Repository: my-app Branch: test Do you wish to continue (y/n): y Select a repository 1) my-repo 2) my-app 3) [ Create new Repository ] (default is 2): 2 Select a branch 1) master 2) test 3) [ Create new Branch with local HEAD ] (default is 1): 1
  4. Para deshabilitar la integración de CodeCommit, utilice eb codesource local.

    ~/my-app$ eb codesource local Current CodeCommit setup: Repository: my-app Branch: master Default set to use local sources

Usar un repositorio de CodeCommit existente

Si ya tiene un repositorio de CodeCommit y desea usarlo con Elastic Beanstalk, ejecute eb init en la raíz de su repositorio de Git local.

Para utilizar un repositorio de CodeCommit existente con la CLI de EB

  1. Clone su repositorio de CodeCommit.

    ~$ git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/my-app
  2. Eche un vistazo e inserte una rama para usarla para su entorno Elastic Beanstalk.

    ~/my-app$ git checkout -b dev-env ~/my-app$ git push --set-upstream origin dev-env
  3. Ejecute eb init. Elija el mismo nombre de ramificación, repositorio y región que está utilizando actualmente.

    ~/my-app$ 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): 1 ... Note: Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service. To learn more, see Docs: https://aws.amazon.com/codecommit/ Do you wish to continue with CodeCommit? (y/n)(default is n): y Select a repository 1) my-app 2) [ Create new Repository ] (default is 1): 1 Select a branch 1) master 2) dev-env 3) [ Create new Branch with local HEAD ] (default is 2): 2

Para obtener más información acerca del uso de eb init, consulte Configuración de la CLI de EB