【问题标题】:Deploy new war to AWS Elastic Beanstalk environment through JAVA API通过 JAVA API 将新战争部署到 AWS Elastic Beanstalk 环境
【发布时间】:2017-12-27 01:28:06
【问题描述】:

我通过 AWS Java API 为该应用程序创建了一个 Elastic Beanstalk 应用程序和环境。现在环境正在运行示例应用程序。我只需要通过 Java API 将新的 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);

【问题讨论】:

    标签: amazon-web-services amazon-elastic-beanstalk aws-sdk amazon-elb


    【解决方案1】:

    首先您将战争文件上传到 S3 存储桶,然后通过引用具有新战争文件的 S3 存储桶位置来创建新的 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);
    

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 2017-04-12
      • 2015-09-07
      • 2014-05-06
      • 2017-10-12
      • 2016-07-18
      • 2015-07-05
      • 2016-04-20
      • 1970-01-01
      相关资源
      最近更新 更多