In the documentation it states that the EB CLI is replaced by AWS CLI but all of the documentation is still talking about EB CLI.
I have created an application in Elastic Beanstalk console and now I'm ready to start developing. I have all the tools installed on Ubuntu and I've already tested it locally. Now I want to deploy it to Elastic Beanstalk. How do I do this with AWS CLI?
The EB CLI is a command line interface for AWS Elastic Beanstalk that provides interactive commands that simplify creating, updating and monitoring environments from a local repository. Use the EB CLI as part of your everyday development and testing cycle as an alternative to the Elastic Beanstalk console.
You can view a list of Amazon EC2 instances running your AWS Elastic Beanstalk application environment through the Elastic Beanstalk console. You can connect to the instances using any SSH client. You can connect to the instances running Windows using Remote Desktop.
You have to create a source bundle from your application, see details here: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-sourcebundle.html (Or alternatively you can use AWS CodeCommit or AWS CodeBuild as source for your application.)
Then you can use the AWS CLI to create a new version from your application and deploy it to one application environment. (See the CLI documentation for EBS here.)
Create a source bundle:
zip MyCodeBundle.zip <source files>
Upload that to S3:
aws s3 cp MyCodeBundle.zip s3://a-bucket-where-you-store-your-source-bundles/
Create a new application version using the source bundle you just uploaded:
aws elasticbeanstalk create-application-version --application-name YourEBSAppName --version-label YourVersionLabel --source-bundle S3Bucket="a-bucket-where-you-store-your-source-bundles",S3Key="MyCodeBundle.zip"
And finally you update one of your environments to use that version (this is deploy even though that verb is completely missing from the new AWS CLI for EBS - this was a little confusing for me):
aws elasticbeanstalk update-environment --application-name YourEBSAppName --environment-name YourEBSEnvironmentName --version-label YourVersionLabel
To complement @qqbenq answer, here is an example of AWS CLI deployment to beanstalk with a given deployment policy:
aws elasticbeanstalk update-environment \
--environment-name <eb-env-name> \
--version-label <verion-label-to-deploy> \
--option-settings \
Namespace=aws:elasticbeanstalk:command,OptionName=DeploymentPolicy,Value=Rolling \
Namespace=aws:elasticbeanstalk:command,OptionName=BatchSizeType,Value=Fixed \
Namespace=aws:elasticbeanstalk:command,OptionName=BatchSize,Value=1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With