BUILD_NUMBER : This is used when deploying a new environment to name it. Typically provided by Jenkins but can be set using a -D on the command line. BUILD_ID : This is used when deploying a new environment to name it. Typically provided by Jenkins but can be set using a -D on the command line.
Parameter | Description | Required | Default |
---|---|---|---|
s3Bucket | The name of the S3 bucket to hold the war/zip file | yes | |
s3Prefix | Prefix to prepend to the war/zip file name in S3 | yes | |
applicationFile | Path to the war/zip file | yes | |
applicationName | The name of the application in elastic beanstalk | yes | |
poolConfigFile | Full path to the config file for the environment (see Pool Config File below) | no | src/main/config/live-config.json |
solutionStack | Name of the solution stack to deploy | no | Tomcat 8 Java 8 on 64bit Amazon Linux 2015.03 v1.4.5 |
prePingSleepSeconds | How long to wait for EB to setup a stack before we start polling for ‘Green’ status in seconds | no | 300 |
afterGreenSleepSeconds | How long to wait after a stack reports ‘Green’ before starting integration tests in seconds | no | 30 |
maxWaitSeconds | How long to wait at any polling stage before giving up entirely in seconds | no | 420 |
liveServerDomainName | Name of the live server (typically applicationName.elasticbeanstalk.com) | yes |
<build> ... <plugins> ... <plugin> <groupId>com.erigir</groupId> <artifactId>seedy-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> <configuration> <afterGreenSleepSeconds>30</afterGreenSleepSeconds> <applicationName>myapp</applicationName> <s3Bucket>seedy-uploads</s3Bucket> <s3Prefix>myapp/</s3Prefix> <poolConfigFile>src/main/config/live-config.json</poolConfigFile> <solutionStack>64bit Amazon Linux 2014.03 v1.0.4 running Tomcat 7 Java 7</solutionStack> <prePingSleepSeconds>300</prePingSleepSeconds> <maxWaitSeconds>420</maxWaitSeconds> <liveServerDomainName>myapp.elasticbeanstalk.com</liveServerDomainName> <preFlipLiveWaitSeconds>15</preFlipLiveWaitSeconds> <terminateOldEnviroment>false</terminateOldEnviroment> <applicationFile>${project.build.directory}/${project.build.finalName}.war</applicationFile> <renameMappings> <renameMapping> <src>r.html</src> <dst>r</dst> </renameMappings> </configuration> </plugin> </plugins> </build>
This file allows you to configure the pool of for the elastic beanstalk environment. There are lots of possible settings, see AWS docs for details.
Example json [ { "Namespace": "aws:autoscaling:asg", "OptionName": "MinSize", "Value": "1" }, { "Namespace": "aws:autoscaling:asg", "OptionName": "MaxSize", "Value": "4" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "InstanceType", "Value": "t1.micro" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "EC2KeyName", "Value": "your-keypair-name" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "your-role-name" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "MonitoringInterval", "Value": "5 minutes" }, { "Namespace": "aws:elasticbeanstalk:sns:topics", "OptionName": "Notification Topic ARN", "Value": "your-topic-arn" }, { "Namespace": "aws:elasticbeanstalk:hostmanager", "OptionName": "LogPublicationControl", "Value": "true" }, { "Namespace": "aws:elb:loadbalancer", "OptionName": "CrossZone", "Value": "true" }, { "Namespace": "aws:elb:policies", "OptionName": "ConnectionDrainingEnabled", "Value": "true" }, { "Namespace": "aws:elb:policies", "OptionName": "Stickiness Policy", "Value": "true" }, { "Namespace": "aws:elb:policies", "OptionName": "Stickiness Cookie Expiration", "Value": "14400" }, { "Namespace": "aws:elasticbeanstalk:application:environment", "OptionName": "example env property name", "Value": "example env property value" }, { "Namespace" : "aws:elb:loadbalancer", "OptionName": "SSLCertificateId", "Value": "your SSL certificate ARN" } ]