如果您没有持续交付流程,您可以参考本文快速搭建用于测试的持续交付环境,并通过执行docker push {image}
命令就能免费将镜像部署到Serverless 应用引擎 SAE(Serverless App Engine)。如果您正在建设持续交付流程,也可以参考本文,自定义自动触发部署镜像到SAE的方案。
前提条件
背景信息
本文以搭建一个简单的事件驱动的持续交付函数为例,全程无需编写一行代码,实现捕获镜像提交事件,并触发云函数,将镜像部署到SAE等操作,耗时不到10分钟。源代码的下载地址,请参见源代码。
步骤一:创建部署应用的云函数DeployTrigger
创建函数
创建函数并为其配置环境变量与触发器信息。
- 登录函数计算控制台,在左侧导航栏,单击服务及函数。
- 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务操作列的函数管理。
- 在函数管理页面,单击创建函数。
在创建函数页面,选择使用内置运行时创建,配置以下信息。
本文仅介绍关键配置项。更多信息,请参见管理函数。
分类
配置项
说明
基本设置
函数名称
输入DeployTrigger。
请求处理程序类型
选择处理 HTTP 请求。
函数代码
运行环境
选择Java 8。
代码上传方式
将源代码打成JAR包,选择通过 JAR 包上传代码。
环境变量
使用表单编辑
选择使用表单编辑,单击添加变量,添加环境变量键值对。
变量:输入ACCESS_TOKEN。
值:输入函数访问鉴权的自定义Token。您可以使用uuidgen命令(oxs系统)或在互联网上寻找生成UUID的网页生成Token。
触发器配置
触发器类型
默认选择HTTP触发器。
名称
自定义,例如输入LATEST。
请求方法
选择POST。镜像服务的触发器发送的HTTP请求方式为POST。
禁用公网访问 URL
选择否,即使用HTTP触发器的公网通过URL访问函数。
认证方式
选择无需认证,即设置为任何人都可以调用。
单击创建。
修改角色配置
为RAM角色添加调用SAE产品的权限。
单击左上角的回退图标,在左侧导航栏,单击服务详情。
在服务详情页面的角色配置区域,单击编辑,在编辑服务页面的角色配置区域,单击创建角色并配置相关参数。
跳转至RAM控制台,添加SAE产品的调用权限AliyunSAEFullAccess。具体操作,请参见授予函数计算访问其他云服务的权限。
如果您需要进一步精细化授权,您可以给角色授予部分需要部署的应用的修改权限。更多信息,请参见权限策略和示例。
添加权限时,如果您已经创建了SAE读写权限的角色,您可以直接添加服务权限。具体操作,请参见授予函数计算访问其他云服务的权限。
如果您没有搜索到SAE读写权限的角色,您需要先登录RAM控制台创建角色并授权。
创建可信实体为阿里云服务的RAM角色:创建RAM角色时,角色类型选择普通服务角色,选择受信服务选择函数计算。
为RAM角色授权:为RAM角色授予AliyunSAEFullAccess权限。
步骤二:创建镜像推送触发器
登录容器镜像服务控制台。
在顶部菜单栏,选择所需地域。
在实例列表页面,单击目标实例。
本文以企业版实例为例进行操作。
在左侧导航栏,选择 ,在镜像仓库页面,单击目标镜像仓库。
在仓库的基本信息页面的左侧导航栏,单击触发器,在触发器页面左上角,单击创建。
在创建触发器对话框,输入名称和触发器 URL,选择触发方式为全部触发,单击确定。
重要触发器URL需包含三部分:
函数的访问地址:在函数的触发器管理页签获取。
鉴权的Token:在函数的函数配置页签的环境变量区域获取。
需要部署的SAE应用ID:在应用的基本信息页面获取。
步骤三:验证部署结果
本文以企业版容器镜像为例进行验证。更多信息,请参见以下文档:
执行以下命令,登录镜像仓库。
docker login --username=<镜像仓库登录名> <企业版实例名称>-registry.<regionId>.cr.aliyuncs.com
推送镜像。
执行以下命令,查询镜像ID。
docker images
预期输出。示例如下:
REPOSITORY TAG IMAGE ID CREATED SIZE expresscart latest d6228399**** 2 weeks ago 387 MB
执行以下命令,给镜像打标签。
docker tag <镜像ID> <企业版实例名称>-registry.<regionId>.cr.aliyuncs.com/<命名空间的名称>/<镜像仓库的名称>:<镜像版本号>
执行以下命令,推送镜像至企业版实例。
docker push <企业版实例名称>-registry.<regionId>.cr.aliyuncs.com/<命名空间的名称>/<镜像仓库的名称>:<镜像版本号>
您可以观察到SAE应用会产生一条变更记录,推送的镜像1.9版本被重新部署到了SAE。系统显示如下结果。
结果验证。
登录SAE控制台,在变更记录页面查看变更详情,您可以看到系统重新部署了镜像1.9版本。
关于Docker操作的更多信息,请参见Docker基本操作。
- 本页导读 (1)