gradle-aws-plugin elasticbeanstalk 如何部署上传的版本

Posted

技术标签:

【中文标题】gradle-aws-plugin elasticbeanstalk 如何部署上传的版本【英文标题】:gradle-aws-plugin elasticbeanstalk how to deploy uploaded version 【发布时间】:2016-02-24 15:46:14 【问题描述】:

我在 android Studio 中有一个项目,其中包含一个 Android 模块和一个后端模块。后端模块生成一个我想通过gradle-aws-plugin 部署到AWS ElasticBeanstalk 的war 文件。应用程序创建和上传本身工作正常。我可以在我的 Beanstalk 应用程序中看到指定存储桶中的 war 文件和版本。

但是我找不到将新版本部署到我的环境的 gradle 任务。

【问题讨论】:

【参考方案1】:

我正在使用 classmethod Gradle plugin 将文件上传到 S3,但我也找不到任何 Gradle 插件来“部署”到 Elastic Beanstalk。

我目前的想法是在 Gradle 中使用 eb deploy command exec task。我知道这是次优的,但它是我能找到的最接近的东西。

【讨论】:

【参考方案2】:

我认为使用 gradle-aws-plugin 部署到 Elastic Beanstalk 是不可能的,但是有一个 gradle-beanstalk-plugin 可以通过最少的配置完全满足您的需求。

【讨论】:

【参考方案3】:

插件提供的awsEbMigrateEnvironment 任务可以实现。

如果你让它依赖于build.gradle,比如:

 ...
 awsEbCreateApplicationVersion.dependsOn uploadBundle
 awsEbMigrateEnvironment.dependsOn awsEbCreateApplicationVersion

然后做gradle awsEbMigrateEnvironment

假设您已正确配置所有内容。 将构建、上传、创建新版本并最终部署到您在配置中指定的环境中:

beanstalk  
    environment  
        envName = ... 
        versionLabel = ...
     
 

或者,如果您想手动完成,您可以删除 dependsOn 并创建一个类似的任务:

import jp.classmethod.aws.gradle.elasticbeanstalk.*
task ebDeployGivenVersion(type: AWSElasticBeanstalkCreateEnvironmentTask)
     versionLabel = "$project.findProperty('wishedVersion') ?: 'foobar'"   

然后: gradle ebDeployGivenVersion -PwishedVersion=v1.2

【讨论】:

以上是关于gradle-aws-plugin elasticbeanstalk 如何部署上传的版本的主要内容,如果未能解决你的问题,请参考以下文章

分布式任务elastic-job

hids Elastic Security 系列1-Elastic Security介绍

hids Elastic Security 系列1-Elastic Security介绍

Elastic:如何使用 Elastic 机器学习来侦测异常

Elastic:如何使用 Elastic 机器学习来侦测异常

elastic 线程池设置解决logstash-429