除了通过SAE控制台进行应用部署,您还可以通过Alibaba Cloud Toolkit for IntelliJ IDEA(简称Cloud Toolkit)插件部署应用。
前提条件
- 下载并安装JDK1.8或更高版本。
- 下载并安装IntelliJ IDEA(2018.3或更高版本)。 说明 由于JetBrains插件官方服务器设立在海外,如果因访问缓慢导致无法下载安装,请联系我们。
- 在IntelliJ IDEA中安装和配置Cloud Toolkit。
背景信息
Cloud Toolkit是阿里巴巴提供的免费IDE插件。您可以注册或使用已有的账号免费下载Cloud Toolkit,下载完成后,将其安装在IntelliJ IDEA中。
在本地完成应用程序的开发、调试及测试后,您可以通过本插件将应用程序快速部署到SAE。
部署应用到SAE
Cloud Toolkit插件目前仅支持将应用以WAR包、JAR包或镜像方式部署到SAE。
- 在IntelliJ IDEA界面左侧的Project区域中右键单击待部署的工程名,在快捷菜单中选择 。
- 在Deploy to SAE对话框,配置应用部署参数,配置完成后单击Apply保存设置。参数说明如下:
参数 说明 Region 选择应用所在地域。 Namespace 选择应用所在命名空间。 Application 选择应用名称。 Build - Maven Build:Maven Build方式构建应用,默认添加Maven任务构建部署包。如果需要部署子模块,请参见使用IntelliJ IDEA部署多模块工程中的子模块。
- Upload File:JAR包或者WAR包构建应用,上传WAR包或者JAR包后部署应用。
- Image:镜像方式构建应用,需要设置镜像地址后部署应用。
- Gradle Build:暂不支持。
- 可选:在Deploy to SAE对话框,单击Advanced,在Advanced区域配置应用高级参数。说明 如果您未配置高级参数,部署时将默认使用SAE控制台上的值。
参数说明如下:
类型 参数 示例值 说明 部署JAR包 Package Version 1.0.1 部署的应用版本号。 JDK Open JDK 8 部署的应用依赖的JDK版本。 Web Container apache-tomcat-7.0.91 部署的应用依赖的Tomcat版本。 启动命令设置 Jar Start Options custom-option JAR包启动应用选项。应用默认启动命令如下: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs
Jar Start Args custom-args JAR包启动应用参数。应用默认启动命令如下: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs
发布策略设置 Update Strategy {"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}} 部署策略,可参考以下示例: - 示例1:灰度1台+后续分2批+自动分批+分批间隔1分钟
{"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}}
- 示例2:分2批发布+自动分批+分批间隔0分钟
{"type":"BatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":0}}
Hosts绑定设置 Custom Host Alias [{"hostName":"samplehost","ip":"127.0.0.1"}] 容器内自定义Host映射。 应用健康检查设置 Liveness {"exec":{"command":["sleep","5s"]},"initialDelaySeconds":10,"timeoutSeconds":11} 容器健康检查,健康检查失败的容器将被强制关闭并恢复。目前仅支持容器内下发命令的方式: {"exec":{"command":["sleep","5s"]},"initialDelaySeconds":10,"timeoutSeconds":11}
Readiness {"exec":{"command":["sleep","6s"]},"initialDelaySeconds":15,"timeoutSeconds":12} 应用启动状态检查,多次健康检查失败的容器将被强制关闭并重启。不通过健康检查的容器将不会有SLB流量进入。 部署设置 Min Ready Instances 1 应用的最小存活实例数。 Batch Wait Time 10 分批发布等待时间,单位为秒。 环境变量设置 Envs [{"name":"envtmp","value":"0"}] 容器环境变量参数。 - 示例1:灰度1台+后续分2批+自动分批+分批间隔1分钟
- 单击Run。您可以通过以下两种方式证明应用已部署成功:
- IntelliJ IDEA的Console区域打印的运行日志中显示
BUILD SUCCESS
。 - SAE控制台上的应用变更记录显示执行成功。
- IntelliJ IDEA的Console区域打印的运行日志中显示
管理Maven构建任务
在Deploy to SAE页面的Before launch区域,您可以对Maven构建任务执行添加、删除、修改和移动操作。
- 在IntelliJ IDEA界面左侧的Project中右键单击待部署的工程名,在快捷菜单中选择 。
- 在Deploy to SAE页面的Before launch区域,管理Maven任务。
- 添加任务
- 单击Before launch区域右侧的,在下拉框中选择Run Maven Goal。
- 在Select Maven Goal对话框中,选择当前工程可用的模块,在Command line区域中输入构建命令。
- 单击OK。
- 删除任务:选择需要删除的任务,单击Before launch区域右侧的。
- 修改任务:选择需要修改的任务,单击Before launch区域右侧的,在Select Maven Goal对话框中修改任务信息,单击OK。
- 移动任务:选择需要移动的任务,单击Before launch区域右侧的或,调整任务顺序。
- 添加任务
部署多模块工程
多模块工程是各个模块独立开发,模块之间存在调用关系的项目工程。Cloud Toolkit可以用于部署多模块工程中的某个子模块的场景。
如果您需要部署多模块Maven工程的子模块,您需要在Deploy to SAE页面的Before launch区域,将待部署的子模块任务设置为最后执行。具体操作,请参见使用IntelliJ IDEA部署多模块工程中的子模块 。
- 方式一:在父工程中执行打包及部署命令。
此方式需要toolkit-maven-plugin为1.0.3及以上版本。
在父工程中执行
toolkit:deploy
命令时,增加-Ddeploy_artifacts
参数来指定需要部署的子模块Artifact ID。如果希望部署多个子模块,请以半角逗号(,)分隔。例如:一个CarShop工程存在以下示例的子模块:
carshop itemcenter-api itemcenter detail
如果想同时部署itemcenter和detail子模块,您可以在carshop目录下,执行以下命令:
mvn clean package toolkit:deploy -Ddeploy_artifacts=itemcenter,detail
默认情况下,此插件会根据itemcenter和detail模块下的
.edas_config.yaml
文件来分别部署对应的应用。您也可以通过增加-Dedas_config
参数来指定配置文件。 - 方式二:在子模块中执行打包及部署命令。此方式支持toolkit-maven-plugin所有版本。
首先,在父工程中执行
install
命令,将子模块依赖安装到本地的Maven仓库。然后,进入到需要部署的子模块目录下执行toolkit:deploy
命令即可。