Amazon web services 通过JavaAPI将新war部署到AWS弹性Beanstalk环境

Amazon web services 通过JavaAPI将新war部署到AWS弹性Beanstalk环境,amazon-web-services,amazon-elastic-beanstalk,aws-sdk,amazon-elb,Amazon Web Services,Amazon Elastic Beanstalk,Aws Sdk,Amazon Elb,我通过AWS Java API为该应用程序创建了一个弹性Beanstalk应用程序和环境。现在,环境正在使用示例应用程序运行。我只需要通过JavaAPI将新的war文件部署到环境中。怎么做这是我创建环境的代码 CreateEnvironmentRequest createEnvironmentRequest = new CreateEnvironmentRequest() .withApplicationName("MySampleApplicationThree

我通过AWS Java API为该应用程序创建了一个弹性Beanstalk应用程序和环境。现在,环境正在使用示例应用程序运行。我只需要通过JavaAPI将新的war文件部署到环境中。怎么做

这是我创建环境的代码

CreateEnvironmentRequest createEnvironmentRequest = new CreateEnvironmentRequest()
                .withApplicationName("MySampleApplicationThree").withEnvironmentName("MySampleApplicationThree-env")
                .withCNAMEPrefix("MySampleApplicationThree")
                .withSolutionStackName("64bit Amazon Linux 2017.03 v2.6.1 running Tomcat 8 Java 8")
                .withVersionLabel("Sample Application")
                ;
        CreateEnvironmentResult envresult = service.beansTalk().createEnvironment(createEnvironmentRequest);

首先将war文件上载到S3 bucket,然后通过引用具有新war文件的S3 bucket位置来创建新的Beanstalk应用程序版本。之后,将新的应用程序版本上载并部署到实例。您可以使用Java SDK执行此操作,如下所示:

      // Create Environment
           CreateEnvironmentRequest envRequest = new CreateEnvironmentRequest("SampleApplication", "SampleApplication-env2");
            envRequest.setSolutionStackName("64bit Amazon Linux 2017.03 v2.6.1 running Tomcat 8 Java 8");
            envRequest.setVersionLabel("SampleApplication");
            service.beansTalk().createEnvironment(envRequest);

            // Deploy code
            //Create S3 storage location and upload new file into it            
            CreateStorageLocationResult location = service.beansTalk().createStorageLocation();
            String bucket = location.getS3Bucket();
            File file = new File("FirstServlet.war");
            PutObjectRequest object = new PutObjectRequest(bucket, "FirstServlet.war", file);
            PutObjectResult res = service.s3().putObject(object);


            CreateApplicationVersionRequest versionRequest = new CreateApplicationVersionRequest();
            versionRequest.setVersionLabel("First Servlet");
            versionRequest.setApplicationName("SampleApplication");
            S3Location s3 = new S3Location(bucket, "FirstServlet.war");
            versionRequest.setSourceBundle(s3);
            CreateApplicationVersionResult resu = service.beansTalk().createApplicationVersion(versionRequest);


            UpdateEnvironmentRequest updateRequest = new UpdateEnvironmentRequest();
            updateRequest.setEnvironmentId("xxx");
            updateRequest.setVersionLabel("First Servlet");
            UpdateEnvironmentResult result = service.beansTalk().updateEnvironment(updateRequest);