当应用源文件存储在OSS对象存储中时,可以使用此种类型的部署物来发布应用。
工作原理
当发布的应用分组为ESS伸缩组时,部署期间伸缩活动会被暂停,部署结束后(无论成功或失败)将自动恢复。
部署流程遵循先停后启原则,即每次部署都会先执行停止脚本,再执行启动脚本。
创建并发布部署物。
将应用源文件信息、启动脚本和停止脚本配置为部署物。
创建发布任务,选择发布模式,将部署物发布至目标应用分组。
发布任务的自动化部署流程。
获取部署物信息,包括OSS文件的信息和应用的启动/停止脚本。
下载文件:OSS文件被自动下载到工作目录。
执行停止脚本:执行应用停止脚本,停止旧版本应用。
执行启动脚本:执行应用启动脚本,启动新版本应用。
适用范围
仅支持部署到Linux实例。
启动和停止脚本仅支持Shell类型的脚本。
操作步骤
创建应用并导入ECS实例。
如果没有ECS实例,前往ECS控制台-自定义购买页面,创建Linux操作系统的ECS实例。
建议ECS镜像选择Alibaba Cloud Linux 3.2104 LTS 64位或Ubuntu 22.04 64位。后续示例中的脚本基于这两种镜像编写。如果使用其他镜像,请参考示例并根据实际情况修改脚本。
前往ECS控制台-应用管理页面,单击导入已有资源创建,创建应用和应用分组,并导入ECS实例到应用分组。
创建OSS部署物。
前往ECS控制台-应用管理页面,在我的应用页签下,单击目标应用名称。
在应用详情页,选择部署物页签,然后单击创建部署物。
在创建部署物页面,部署物类型选择OSS文件,设置参数后单击确定保存。
OSS文件信息:设置文件所在的OSS Bucket和文件路径。
如果ECS实例和OSS Bucket在同一地域,可勾选内网下载提高下载速度。
工作目录:设置应用启动/停止脚本的执行目录。OSS文件会被自动下载到该目录。示例:
/root/deploy。Alibaba Cloud Linux
function start_application() { set -e yum install -y maven-3.5.4 java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_applicationUbuntu
function start_application() { set -e apt update apt install -y maven java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_application### Stop the application (if any) function stop_application() { PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}') if [ -n "$PID" ]; then kill -9 $PID fi } stop_application
返回部署物列表,找到刚创建的部署物,单击发布。选择目标分组,单击确定开始部署。
结果验证。
进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。根据页面提示登录,进入终端页面。
执行
curl http://localhost:8080/hello命令。返回Alibaba Spring Sample!表示部署成功。
重要字段
字段 | 说明 |
OSS地域 | 源文件所在的OSS Bucket的地域。 |
OSS Bucket | 源文件所在的OSS Bucket。 |
OSS 文件 | OSS Bucket中的源文件对象(Object)。 |
OSS文件版本 | 指定文件的特定版本ID。仅当Bucket开启版本控制时需要填写。如果未开启版本控制,请留空。 |
内网下载 | 当ECS实例与OSS Bucket在同一地域时,可选择内网下载。 |
工作目录 | 应用源文件的下载路径,同时也是启动和停止脚本的执行目录。
|
应用启动脚本 | 用于启动应用的Shell脚本。 |
应用停止脚本 | 用于停止应用的Shell脚本。 例如,以下脚本可停止名为 |