tencent cloud

云市场

产品动态
产品简介
产品概述
应用看板介绍
购买指南
用户指南
新手指引
应用商店应用使用指南
应用看板使用指南
服务商指南
上架流程概述
云市场入驻流程
制作和管理安装包
商品管理
订单管理
用户应用实例
常见问题
用户相关问题
Marketplace 政策
隐私协议
数据处理和安全协议
Tencent Cloud Marketplace User Agreement
Tencent Cloud Marketplace Products Cooperation Agreement
Tencent Cloud Marketplace End User License Agreement(Standard Version)
Marketplace Product Cancellation and Refund Rules
联系我们
词汇表

制作安装包

PDF
聚焦模式
字号
最后更新时间: 2026-01-30 17:02:52

术语及解释

术语
解释说明
安装包
安装包是伙伴提交符合云市场标准的自动化部署交付物,整合了云资源编排、安装参数和输出声明等内容。
用户通过云市场一键部署,即可自动完成资源创建、应用配置和进程启动,实现全流程自动化安装。

创建安装包

当前,安装包支持两种创建方式,说明如下:

模板创建
普通创建
优势
简单、快捷,通过官方提供的固定模板创建。
只需输入少量模板参数,即可快速创建安装包并提交开发版。
灵活性高,可创建复杂应用。
可完全自定义各种类型的资源,以及资源的各种参数。
不足
灵活性不足,仅支持部分参数自定义。
需要有一定开发基础。
需要安装 Node.js 环境和 CLI 开发者工具。
具体创建步骤如下:
模板快速创建
普通创建
1. 安装包管理 单击新建安装包,选择通过模板创建,填写安装包名称、部分模板参数后即可完成创建。

2. 安装包创建完成后,单击目标应用操作栏下的版本管理即可进入安装包版本管理界面。

1. 安装包管理 单击新建安装包,填写安装包名称、选择普通创建后即可完成创建。

2. 安装包创建完成后,单击目标应用操作栏下的版本管理即可进入安装包版本管理界面。


登录开发者工具(CLI)

1. 在版本管理界面中,单击如何上传开发版本,唤出工具安装和登录指引。
说明:
需要 Node.js 环境。云市场开发者工具基于 Node.js 开发,安装前请确认开发环境已安装 Node.js。如未安装,请前往 Node.js 官网下载安装。


2. 根据指引安装好开发者工具后,使用 cloudapp 命令可以查看工具的使用说明:



3. 安装好工具后,请使用cloudapp login命令在本地开发者中心登录,您需要使用开发者的 CAM 密钥进行登录。
SecretId 和 SecretKey 为注册应用开发方主体身份时,提交的开发者信息中对应的 CAM 密钥。登录成功会显示开发方和开发者名称。如果您忘记了密钥信息,可以到 CAM 控制台 查询。
cloudapp login $SECRET_ID@$SECRET_KEY

安装包初始化(CLI 工具)

说明:
安装包在开发者的本地体现为一个文件系统目录,一般建议采用项目根目录下的 .cloudapp 目录作为安装包目录。
推荐通过阅读 最小安装包的 Demo 源码,来理解安装包的组成。
使用 cloudapp init 命令可以生成一个示例安装包:
# 初始化本地项目,可通过 -t 指定初始模板,支持的模板参考 Github 模板清单(默认模板:CVM实例 + 公网IP)
cloudapp init hello-world

# 示例
# cloudapp init hello-world -t CT_001
注意:
cloudapp init 命令当前为预览版功能,后续可能会调整其用法和参数。当前 cloudapp init 只在本地下载模板代码,更多的模板代码可以在云市场的 GitHub 仓库 中查看。

安装包组成

安装包由开发方交付的内容组成(分为 CVM 部署和容器部署两种模式),具体差异见下表:
CVM 部署
容器部署
说明:
如果您的应用采用的是「容器部署」,请切换到 「容器部署」 查看需要交付的内容。
内容
位置
说明
安装包元信息
.cloudapp/package.yaml
安装包的元信息描述文件。
包含安装包 ID、应用安装参数、CAM 权限策略等信息声明。
资源和变量声明
.cloudapp/infrastructure/**/*.tf
资源和变量声明,采取 Terraform 语法。
资源采用资源块的方式声明;变量为资源部署时可使用的变量,使用前需声明。
CVM 镜像(制品)
云市场制品托管中心
云市场提供 CVM 镜像托管。
说明:
如果您的应用采用的是「CVM 部署」,请切换到 「CVM 部署」 查看需要交付的内容。
内容
位置
说明
安装包元信息
.cloudapp/package.yaml
安装包的元信息描述文件。
包含安装包 ID、应用安装参数、云 API 权限等信息声明。
资源和变量声明
.cloudapp/infrastructure/**.tf
资源和变量声明,采取 Terraform 语法。
资源采用资源块的方式声明;变量为资源部署时可使用的变量,使用前需声明。
容器镜像(制品)
云市场 TCR 仓库
云市场提供 TCR 仓库为需要托管容器镜像的应用提供镜像托管服务。
服务编排
.cloudapp/software/charts/**/*.yaml
服务编排,采用 Helm Chart 编排规范。
编排容器集群中的 StatefulSet、Service、Job、Secret 等内容。

安装包元信息

安装包元信息在 package.yaml 中声明,包含安装包 ID、应用安装参数、云 API 权限等信息声明。
# 安装包 ID,对应开发者中心中的应用 ID
id: pkg-8lve2gn1

# 应用参数,定义允许客户在安装过程中设置的参数,例如所属网络、应用规格、付费方式等
args:
- name: app_target
label: 目标网络
widget: subnet-select

# 应用权限声明(可选),如果应用内需调用云 API,需这里进行声明
role:
policy:
version: "2.0"
statement:
- action:
- cloudapp:VerifyLicense
resource: "*"
effect: allow
注意:
请提供正确的安装包 ID。开发者工具在推送应用的时候,会根据 package.yaml 中记录的安装包 ID 来鉴权并推送,如果应用未登记,或者当前登录的开发者,不是对应的应用开发者,将推送失败。

资源和变量声明

资源声明

安装包中的资源声明,是安装包的核心内容。云市场借用 Terraform 语法 来声明软件依赖的云资源。
resource "tencentcloud_eks_cluster" "eks" {
availability_zone = var.app_target.subnet.zone
k8s_version = "1.20.6"
vpc_id = var.app_target.vpc.id
subnet_ids = [var.app_target.subnet.id]
service_subnet_id = var.app_target.subnet.id
}
上面是一个资源块的声明语法,resource 表示声明资源块,"tencentcloud_eks_cluster" 表示资源类型,"eks" 为资源名称。
说明:
安装包支持声明的资源大致分为两类:
腾讯云 IaaS / SaaS 资源,资源类型前缀为 tencentcloud
云市场封装的资源,资源前缀cloudapp

变量声明

上面声明的 EKS 资源,其关联的 VPC、子网等信息,是从变量中获取的。安装包中,所有用到的变量,都需要进行声明才能使用。
# 使用 variable 关键字声明变量,app_target 为「变量名」,通过 var.app_target 可使用该变量
variable "app_target" {
type = object({
region = string
region_id = string
vpc = object({
id = string
cidr_block = string
})
subnet = object({
id = string
zone = string
})
})
}
跟资源块类似,我们使用变量块 variable 声明一个变量,上面的声明中 app_target为变量名,在资源块中用 var.app_target 即可引用。
变量可用于获取用户的安装参数,也可以用于获取系统的安装参数,详情请参考 使用安装参数、变量和输出 文档说明。

镜像托管

CVM 镜像托管
容器镜像托管
说明:
创建镜像可参见 操作指南。当您制作好 CVM 镜像后,需要将镜像托管到云市场制品管理中心,以便于在用户安装时,云市场自动将对应镜像共享给用户。
1. 在云市场开发者中,选择应用的制品管理



2. 在制品管理中心选择当前应用需要托管的 CVM 镜像。




3. 根据应用允许安装的地域,调整镜像可用地域。



说明:
云市场提供 TCR 仓库为需要托管容器镜像的应用提供镜像托管服务。该仓库客户在安装时从内网拉取,无需外网支持。
1. 使用 cloudapp docker 命令获得仓库登录命令。



2. 使用 cloudapp docker --url 获得仓库推送地址。



3. 使用 cloudapp docker --auth 单独获得 Docker 授权文件,适用于 CI 构建的场景。



4. Docker 仓库登录后,就可以将镜像推送到托管的仓库中了。
仓库票据有效期和权限
cloudapp docker 命令拿到的仓库票据,只能用于应用方推送软件容器镜像。该票据有效期2个小时,所以不应该存储下来使用,建议 CI 流程构建完之后,再实时通过 cloudapp docker 命令获取票据。
客户安装时使用的安装票据是只读的,而 cloudapp docker 拿到的票据则可以操作应用开发方的软件镜像。

服务编排(容器部署)

通过声明 cloudapp_helm_app 类型的资源,可以声明容器服务编排。
resource "cloudapp_helm_app" "helm_charts" {
cluster_id = tencentcloud_eks_cluster.eks.id
chart_src = "../software/chart"
chart_username = var.cloudapp_repo_username
chart_password = var.cloudapp_repo_password

chart_values = {
SUBNET_ID = var.app_target.subnet.id
IMAGE_CREDENTIALS = {
REGISTRY = var.cloudapp_repo_server
USERNAME = var.cloudapp_repo_username
PASSWORD = var.cloudapp_repo_password
}
}
}
需要指定编排的目标容器集群以及编排的 Helm Chart 源码位置(一般建议放在 .cloudapp/software/chart 上)。
通过 chart_values 将资源信息传递到 Helm Chart Values,这些信息在部署时,会传递给 Helm,因而编排的时候可以直接使用基础设施。参见上面的例子,将子网 ID 传给编排,在对 service 进行编排的时候,指定该子网 ID 从而生成内网的负载均衡类型。另一个常见的例子是,将 DB 实例化后的连接信息传入编排,从而让工作负载可以从环境变量中引用,或是生成到 configmap 中。
注意:
将 TF 中声明的资源属性,传递到 Helm Chart Values,是个很重要的特性。利用该特性,让软件编排的时候可以直接编排实际部署的硬件资源,而无需二次设置。

进阶

继续阅读后续内容,了解进阶安装包特性的实现。

资源

前往 GitHub 仓库 查看更多示例源码。

下一步

完成安装包的生产和上传后,需进行安装包的推送、验证和上架,详情参考 安装包管理


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈