Command Line Interface for AWS EB.
Project description
EB-CLI
EB Command Line Interface (CLI) is a tool that helps you deploy and manage your AWS Elastic Beanstalk applications and environments. It also provides integration with Git. This file provides a sample walkthrough of EB CLI. To view a list of commands, type:
eb –help
For more information about a specific command, type:
eb {cmd} –help
For detailed information about EB CLI, see EB Command Line Reference.
Installation
You will need administrator/sudo privileges unless you install into a virtual environment. To install you will first need to install Python and Pip. The most recent version of Python now includes pip.
If you already have Python, but need to install Pip, go here.
After you have installed Pip, run the following command:
pip install awsebcli
Getting Started
EB CLI requires you to have AWS security credentials. For procedures to get security credentials, see the documentation.
1. Create a new directory for your project.
- In Linux/UNIX, type the following:
mkdir my-hello-app
- In Windows, type the following:
md my-hello-app
2. Create an index.html file for EB CLI to use as your sample application.
echo “Hello World” > index.html
NOTE: In Windows, do not include quotes in the command.
3. Set up your directory with EB CLI and then answer the questions to configure AWS Elastic Beanstalk.
eb init
When prompted for your AWS security credentials, type your access key ID and secret access key. To answer a question with the default value, press Enter.
4. Create your running environment and deploy the Hello World application.
eb create
Wait for AWS Elastic Beanstalk to finish creating the environment. When it is done, your application is live in a load-balancing environment.
5. View your application.
eb open
6. Update the sample application to create a new application version to deploy.
Make a change to your code by typing the following:
echo “ to you.” >> index.html
NOTE: In Windows, do not include quotes in the command.
When you are ready to launch your new application version, type the following:
eb deploy
7. View the health of your environment
eb health
8. View the updated environment.
eb open
9. Shut down your running environment.
eb terminate
Confirm that this is the environment that you want to terminate by typing the environment name.
10. Clean up.
To completely remove your application and clean up the local project directory, type the following:
eb terminate –all
Confirm that this is the application that you want to remove by typing the application name.
EB CLI Commands
This section describes some EB CLI 3 commands and why you would use them.
1. View environment status.
eb status -v
- The status command will show you the current state of your application. This includes things such as:
Environment Name
Application Version
Solution Stack
Health
Number of running instances
2. List your running environments.
eb list
The list command will show you a list of running environments. The environment with an asterisk next to it is the default environment. To see more detailed information about your environments, type the following to use verbose mode:
eb list -v
3. Change your current environment.
You can run most commands with any environment by using the following syntax:
eb {cmd} <environment>
To change your default environment, type the following:
eb use [environment_name]
4. Open the AWS Elastic Beanstalk management console.
To view your environment in the AWS Management Console, type the following:
eb console
5. Change environment variables.
You can set environment variables for your running environment at any time by typing the following:
eb setenv foo=bar
You can view your environment variables by typing the following:
eb printenv
Using EB CLI with Git
EB CLI 3 provides integration with Git. After running “git clone” or “git init”, run the following command:
eb init
EB CLI 3 will now recognize that your application is set up with Git.
To use Git with EB CLI 3:
Make any change to your code.
After you make a change to your code, type the following:
git commit
Deploy your updated code.
Now when you run the “eb deploy” command, EB CLI will only deploy the code that was under source control. Make sure to always commit what you want to deploy. EB CLI uses your commit ID and message as the version label and description, respectively.
Deploy to production.
When you are ready to deploy an updated version of your code, use Git tags.
git tag -a v1.0 -m “My version 1.0”
The tag will be used for the version label so you always know which version your environment is running on. If you have already deployed this version, EB CLI will deploy that version to your environment instead of uploading a new application version.
Use branches.
EB CLI enables you to associate different environments with different branches of your code. For example:
git checkout master
eb use prod
git checkout develop
eb use dev
Now whenever you switch to a new branch, your default environment will also switch.
Changelog
3.15.1 (2019-05-15)
Fixed bug that rejected the platform list –region … command in an un-initialized directory
3.15.0 (2019-04-04)
Added ability to tag applications through eb init
Added ability to tag configuration templates through eb config save
Added ability to tag custom platforms through eb platform create
Added support to tag resources with ARNs through the –resource argument of eb tags
3.14.13 (2019-02-22)
Fix Python 2.7 EBCLI breakage
3.14.12 (2019-02-22)
Fixed eb init behaviour so that AWS credentials environment variables are checked before assuming “eb-cli” profile
Updated pathspec requirement to 0.5.9
Introduced direct dependency on wcwidth>=0.1.7,<0.2.0
3.14.11 (2019-02-07)
Fixed behaviour of eb commands whereby error events were being classified as successful
Fixed bug that rejected –profile argument in favor of environment variables representing credentials
Fixed bug that caused eb create/deploy to abort following failure to delete temporary application versions directory
3.14.10 (2019-01-21)
Introduced direct dependency on requests>=2.20.1,<2.21
Fixed bug that failed –source arguments with ‘/’s in the branch name
3.14.9 (2019-01-09)
Updated urllib3 requirement to >=1.24.1,<1.25
Updated docker-compose requirement to >=1.23.2,<1.24
Updated botocore requirement to >=1.12.29,<1.13
Updated six requirement to >=1.11.0,<1.12.0
Added ability to reference CodeCommit branch names containing ‘/’s
3.14.8 (2018-12-12)
Added eu-north-1 EU (Stockholm) region
3.14.7 (2018-12-03)
Fixed Python 2.7 Unicode tag deletion bug
Fixed bug that suggests unavailable CNAME to customers
Fixed logic to handle exceptions without error messages
Fixed bug that avoids showing region list during eb init
Fixed bug that fails to invoke CodeCommit credential helper on Windows
Fixed failure to create empty README file in CodeCommit Git repository on Windows
Modified ALB to be the default load balancer during eb create
Modified NLB to be available in the China regions
Modified eb ssh logic to use PrivateIpAddress rather than PrivateDnsName
3.14.6 (2018-09-11)
Added –timeout argument to the eb platform create command
Added –timeout argument to the eb ssh –setup command
Passed serviceId as a parameter to the botocore-managed service models patched by the EBCLI
Removed dependency on tabulate
Restricted urllib3 requirement to range >1.21,<1.23 to resolve dependency incompatibility between botocore and requests
Updated botocore requirement to >=1.12.1,<1.13
3.14.5 (2018-09-07)
Restricted botocore version to the range <1.12 to avoid incompatibility with the EBCLI
3.14.4 (2018-08-16)
Fixed eb platform –help and ebp –help usage texts to show all available commands and subcommands regardless of workspace type
Fixed eb create and eb deploy behavior in cases where customer-specified timeout values are rejected
3.14.3 (2018-07-18)
Changed eb health table on non-Windows platforms to use Unicode U+25C4 and U+25BA for left and right arrow characters rather than U+25C0 and U+25B6 respectively
Updated pyyaml version requirement to the range >=3.10,<=3.13 to enable usage of the EBCLI with Python 3.7.0
Added logic to show UTC timestamps for all event text output of all eb commands which wait on the Beanstalk service
Fixed bug in the interactive flow of eb create requiring customers to specify vpc.publicip, vpc.elbsubnets and vpc.elbpublic arguments for –tier type “worker”
Fixed bug in the interactive flow of eb create requiring customers to specify vpc.elbsubnets and vpc.elbpublic arguments for single-instance environments
3.14.2 (2018-07-03)
Amended solution stack precedence logic to prefer Amazon GlassFish to equivalent Debian GlassFish platforms
Fixed exceptions not inheriting from EBCLIException to force eb to exit with return code 4
Fixed ability to create application versions from directories greater than 4GB in size
Fixed eb health on Windows
Fixed eb swap failure which occurs when executing without arguments
Removed support for usage of the EBCLI through py2exe
Restricted pyyaml version to the range >=3.10,<=3.12 to be compatible with docker-compose and aws
3.14.1 (2018-06-11)
Added eu-west-3 (Paris) CodeCommit support
Prevented selection of ELB type in the interactive mode of eb create for worker-tier environments
Updated version of colorama
3.14.0 (2018-06-04)
Added docker-compose as a dependency
Added python-dateutil as a dependency
Removed direct dependencies on docker, dockerpty, docopt, requests, and websocket-client
Added logic to poll logs#describe_log_groups to wait for Custom Platform Builder log-group creation
Fixed eb clone bug which occurs while setting CNAME of cloned environment
Fixed eb deploy –modules … bug which occurs when attempting to print failure message of elasticbeanstalk#compose_environments
3.13.0 (2018-05-15)
Added ability to enable streaming environment-health logs to CloudWatch
Added explicit dependency on Python package docker
Fixed environment variables parsing logic during eb create
Fixed eb health for environments using basic health and an ELBV2 load balancer
Fixed eb logs behavior to choose an incorrect default log group for Windows platforms
Fixed eb platform delete’s inability to delete custom platforms in some situations
Fixed eb tags –list failure occurring when the default branch environment is absent
Fixed .gitignore problem on Windows whereby files specified for omission could also be staged
Prevented attempts to create convenience symlinks to latest logs when executing with Python 2.7 on Windows
Removed code that installs Python package docker on the customer’s behalf
3.12.4 (2018-03-07)
Fixed DescribeEvents polling logic to use datetime.utcnow() instead of datetime.now()
Fixed TimeoutError`s to force `eb to exit with return code 4
Fixed eb deploy –modules … bug preventing it from finding project root
Fixed eb platform list –verbose bug preventing it from listing all custom platform ARNs
Fixed eb init –source bug by enforcing association with remote CodeCommit repository
Modified eb to retry after botocore.parsers.ResponseParserErrors
3.12.3 (2018-02-15)
Fixed CodeCommit integration problem when there are multiple remotes
Fixed bug involving eb init using preexisting app
3.12.2 (2018-02-06)
Added eu-west-3 EU (Paris) and cn-northwest-1 China (Ningxia) regions
Added support for eb local run with major versions 2 of Python package docker-py
Fixed –platform option to take language name as argument
Fixed behavior of –platform flag to pick the latest version of solution stack when input is ambiguous
Fixed .ebignore logic to recognize files with Unicode characters
Fixed redundant downloading of Packer events published by CloudWatch
Fixed silent rescues of UnicodeEncodeError s when printing Packer events
Fixed DescribeEvents polling in the context of custom platforms
Fixed eb local run to work with PlatformArn s
Fixed local-remote inconsistency observed after deployments using CodeCommit
Fixed misspelling in the prompt for whether VPC ELB should be public
3.12.1 (2017-11-08)
Added ability for customers to download sample application during eb create if using one
Added graceful handling of errors when operating ebp commands in eb workspaces
Fixed hyperlink to page describing ECS permissions necessary to create multi-container docker environments
Fixed DescribeEvents polling logic for environment creation after ASG per-region quota is reached
Fixed DescribeEvents polling logic by filtering events returned accurately
Fixed eb list’s usage text by removing mention of environment name as a positional argument
Increased default timeout for eb create when the -db flag is specified
Modified eb ssh logic to use private IP address rather than private DNS when a public IP/DNS is not available
Modified generic EBCLI timeout message to prompt customers to view the result of eb events -f
Removed eb ssh –custom’s dependency on SSH private key in ~/.ssh
3.12.0 (2017-10-10)
Added support for tagging Environments
3.11.0 (2017-09-26)
Added support for creation of environments with Network Load Balancers
Fixed bug that caused eb restore to fail to begin
3.10.6 (2017-08-21)
Fixed 5-minute timeout bug involving CLI giving up on CodeBuild despite server-side success
Fixed module-creation bug where eb create exits because it cannot find the .elasticbeanstalk directory
Increased limit on the number of tags that can be created during environment creation to 47
Fixed environment creation failures when platform names specified are from the list retrieved by eb platform list.
3.10.5 (2017-07-28)
Added ca-central-1 (Canada-Central), and ap-south-1 (Mumbai) CodeCommit support
Made .elasticbeanstalk/logs/local directory writable by all thorough ‘eb local run’
Fixed Python 2.x character encoding bug that prevents ‘eb appversion’ from displaying
3.10.4 (2017-07-14)
Fixed bug in solution stack determination logic for Multi-Container Docker 17.03.1-ce platform version
3.10.3 (2017-06-27)
Added ability to zip git submodules for application versions
Added us-west-1 (N. California), eu-west-2 (London), ap-northeast-2 (Seoul), and sa-east-1 (São Paulo) CodeCommit support
Added exception handling for TooManyConfigurationTemplatesException
3.10.2 (2017-06-09)
Improved eb and ebp create default instance profile creation logic.
Added eu-central-1 (Frankfurt), ap-northeast-1 (Tokyo), ap-southeast-1 (Singapore) and ap-southeast-2 (Sydney) CodeCommit support
Added additional logging for 5xx retry messages
3.10.1 (2017-03-30)
Fixed python 3.x bug for eb local run
Fixed eb local docker version check failure for leading zeros
Fixed eb init to not create an application when picking an existing app
Fixed eb local run to accept volumes defined that are not prefixed with /var/app/current/
3.10.0 (2017-02-21)
Support for custom elastic beanstalk platforms
Fixed CodeBuild integration pulling CloudWatch URL link
3.9.1 (2017-02-08)
Changed Beanstalk CodeBuild integration to be optional by not specifying the header in buildspec
Fixed ‘eb config put’ to update DateModified field
Fixed ‘eb config put’ full path failure
Fixed exit codes to return correctly
Removed CodeCommit failed prompt in eb init to avoid confusion
Added ‘process’ flag for eb create/deploy for preprocessing application versions
3.9.0 (2016-12-22)
Added native support in ‘eb logs’ for log streaming.
Added ‘–log-group’ and ‘–cloudwatch-logs’ flags in ‘eb logs’
Added ‘appversion’ command to managed application versions
Added ‘appversion lifecycle’ sub command to manage application lifecycle configurations
3.8.10 (2016-12-19)
Fixed install bug for python 3.x
3.8.9 (2016-12-16)
Added ‘eb restore’ command, used to restore terminated environments
3.8.8 (2016-12-13)
Added eu-west-2 EU (London) region
3.8.7 (2016-12-08)
Fixed Windows installation bug
3.8.6 (2016-12-08)
Added support for working directories containing white-spaces
Added ca-central-1 Canada (Central) support
3.8.5 (2016-12-01)
Added support for CodeBuild by autodetecting a buildspec file and deploying with settings from that
3.8.4 (2016-11-16)
Added ‘–source’ flag to create, deploy, init and use to directly use source from CodeCommit repositories
Added us-west-2 (Oregon) and eu-west-1 (Ireland) CodeCommit support
3.8.3 (2016-10-17)
Added us-east-2 (Ohio) CodeCommit support
3.8.2 (2016-10-17)
Added us-east-2 (Ohio) region
3.8.1 (2016-10-13)
CodeCommit bug fixes
3.8.0 (2016-10-13)
Fixed elb prompt for single instance creations
Fixed eb init to no longer call CreateApplication when a preexisting application is chosen
Allowing eb ssh to attempt to access private ip address if public ip is not available
Added support for CodeCommit deployment and integration
3.7.8 (2016-08-22)
Fixed ‘eb setenv –timeout’ problem
Updated ‘eb config’ inline doc to be clearer on functionality
Fixed ‘eb deploy –nohang’ problem
Added commands ‘–command’ and ‘–custom’ to ‘eb ssh’
Added support for Application Load Balancer with ‘create’, ‘health’ and ‘status’
3.7.7 (2016-06-27)
Added “ap-south-1” to region list
Checking for existing app versions in application, local or in their account, before creating one when label is specified.
Updating environment name length constraints to 40 char max.
3.7.6 (2016-04-14)
The Elastic Beanstalk Service role will now also be created during non-interactive environment creates
Added the AWSElasticBeanstalkService managed policy to the Elastic Beanstalk Service role
3.7.5 (2016-04-01)
Support new Enhanced Health features
Fix bug in “eb health” for basic health environments
Fix bug in “eb health” that causes a date parsing error for some locale settings
Roles created by the CLI now make use of AWS Managed Policies
3.7.4 (2016-03-10)
Fix an issue that prevents “eb local” subcommands from working with Docker 1.10
Fix an issue that causes the EB CLI to crash when deploying multiple modules with compose environments
3.7.3 (2016-01-28)
Fix bug with application version processing
Fix bug in “eb config delete”
3.7.2 (2016-01-08)
Fix bug where symlinks in application versions were not in their original locations
3.7.1 (2016-01-07)
Fix long type incompatibility bug with Python 3
3.7 (2016-01-06)
Add “ap-northeast-2” to region list
Fix bug with symlinks on Unix systems
3.6.2 (2015-12-14)
Improved logic related to waiting for application version processing
Change tag behavior to allow for ‘=’ in tag values
Prompt for EnvironmentName when not present in env.yaml
3.6.1 (2015-11-23)
Remove pre-processing of application versions when no env.yaml file is present
Fix bug with ‘eb logs’
3.6 (2015-11-23)
Support for Composable Applications
3.5.6 (2015-11-20)
Fix bug in ‘eb health’ causing errors in some locales
Change the naming scheme of app versions when using Git
Change strings related to timeout errors to indicate the presence of the timeout option
3.5.5 (2015-10-27)
Fix bug in “eb swap”
Fix typo in string resource
3.5.4 (2015-09-22)
Add “cn-north-1” to region list
Adjust client default ELB Healthcheck Interval to use service default
3.5.3 (2015-09-14)
Change contact details
Fix bug in “eb labs setup-ssl” which occurred on some versions of Python
3.5.2 (2015-08-26)
Fix bug in “eb health” command preventing it from running.
3.5.1 (2015-08-25)
Fix az column clipping.
Unhide labs setup-cwl feature as well as logs –stream.
Add pip install command when a new version is available.
3.5 (2015-08-11)
Add command “eb labs setup-ssl”
Add command “eb labs cloudwatchlogs-setup”
Change eb open to now open https if load balancer http port is OFF
Add support for enhanced health with eb health
Other minor changes
3.4.7 (2015-07-28)
Fix issue with .gitignore being included on deploy
Fix issue with streaming unicode events
3.4.6 (2015-07-10)
Fix issue with “eb labs download”
Fix issue where folders in .ebignore were incorrectly being uploaded.
3.4.5 (2015-06-08)
SSH no longer attempts to open port 22 if a Source restriction is in place
Added –force flag to override above behavior
SSH errors now show properly with the -o option
Environment variables are less strict and can now contain the ‘=’ sign
3.4.4 (2015-05-18)
Changed how Sample Application is handled internally
3.4.3 (2015-05-12)
Fix issue with “eb config” when adding new option settings
Update golang local container file
Fix issue with overwriting docker environment variables during local
3.4.2 (2015-05-09)
Fix issue with installation for eb local files
3.4 (2015-05-07)
Added ‘localContainerDefinitions’ section for multi-continer docker
Multi-container docker containers now correctly read ‘environment’
Added printenv/setenv commands to eb local
t2.micro is now default instance type for accounts with a default vpc
add –staged option to eb deploy for deploying git stage rather then commit
Fix config file path resolution
3.3.2 (2015-04-30)
Fix “eb open” for windows
3.3.1 (2015-04-28)
Fix –force option on “eb labs cleanup-versions”
3.3 (2015-04-28)
Added “local” commands
Added “eb labs cleanup-versions” for cleaning up old app versions
Added support for an .ebignore file
using “eb terminate –all” now removes application bundles from s3
Add support for branch specific defaults in config.yml
Fix interactive vpc bug
Fix “eb open” race condition
Incomplete credentials errors are now more verbose
3.2.2 (2015-04-06)
Fix issue with creating single instance environments
3.2.1 (2015-04-02)
Added warning string for Multi-container permissions on “create”
3.2 (2015-03-30)
Added “platform” commands
Added “upgrade” command
Added “abort” command
Added “labs” commands
Printed events now look nicer
Logs and events are automatically paged.
Health based rolling updates are now default for new environments.
3.1.3 (2015-03-13)
Added option on create for specifying database version (–database.version)
3.1.2 (2015-02-26)
Fix multithreaded issue on python 3.4.3
Fix environment names printing in columns
Update botocore to 0.93.0
3.1.1 (2015-02-24)
Fix git issue on windows
Support older versions of git
Saved Configurations now work with Worker tier
3.1 (2015-02-17)
Editor backup files (file.txt~) no longer included in application zip
Added commands for Saved Configurations (eb config –help)
Now receive alerts for an outdated cli and outdated environment platform.
Deploy now works in subdirectories
Config now works in subdirectories
Can now specify your own timeout period with “–timeout x”
Can now specify environment variables on environment create with “–envvars”
Can now get the latest platform version when you clone an environment. “eb clone”
Application Bundle uploads now show status
Large file uploads are now multi-threaded
Added warning on deploy if unstaged git changes exist
Can now swap environment CNAME’s using “eb swap”
Exposed –vpc option on create
Added –no-verify-ssl option
Updated Botocore to 0.88.0
3.0.11 (2015-02-09)
Fixed Zipping issue for Windows Containers
3.0.10 (2014-11-24)
Fixed parsing error for uploads in a s3 bucket with auto-deletion policy
Fixed terminated environment issues
No longer uploads application if the application version already exists in s3
Default database username changed from admin to ebroot
Trim application version description if it is too long
Application version no longer includes git hash
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file awsebcli-3.15.1.tar.gz
.
File metadata
- Download URL: awsebcli-3.15.1.tar.gz
- Upload date:
- Size: 237.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e4b2ae9ffbcb3d9b04f34d95a6e6935099bf3458305f3db294eee0a159150fa |
|
MD5 | 0de8b2fd87bcddf68efaf4a4f1559a41 |
|
BLAKE2b-256 | ca6036b47119a2791a4ff3d4b4456d15545b7eed40815e64757d3d3d526323a4 |