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:53

安装参数

安装参数可以让客户将软件以合适的方式来安装,常见的场景有:
选择安装在指定的私有网络(VPC)和子网(Subnet)内,从而实施网络规划。
选择客户的安全组(Security Group),从而实施网络访问策略。
选择使用的机型,从而更好贴合用户的实际容量。
选择最终部署的域名和证书,从而让证书可以自动化部署。

在 package.yaml 声明安装参数

安装包可以在 package.yaml 中声明安装参数,云市场将为这些声明的安装参数生成相应的安装界面。以下示例来自云市场模板 CT_001_cvm-ip
# <package.yaml>
# 自定义安装参数,通过 widget 来声明安装表单获取
args:
- name: app_target
label: 目标网络
widget: subnet-select
- name: cvm_type
label: 云服务器类型
widget: cvm-instance-type-select
region: ${app_target.region}
zone: ${app_target.subnet.zone}
- name: sg
label: 安全组
widget: security-group-select
regions:
- ${app_target.region}




声明安装参数时,package.yaml 中使用到的字段,解释如下:
字段
说明
args
用 args 声明参数列表,每一项是一个参数。安装界面会按照声明的顺序渲染安装组件。
args[i].name
参数标识,这个也是后续在 Terraform 中要声明使用的变量名。
args[i].label
参数名,安装界面会展示参数名。
args[i].widget
参数使用的安装组件,支持的组件详见 安装参数手册
args[i].region
args[i].zone
...
参数的安装组件配置,不同的组件类型有不同的配置字段,详见 安装参数手册
组件的配置,一般为用户输入时提供更为精细的选择范围。例如,用户已经选择了目标网络之后,则服务器类型,可以限定到目标子网支持的示例类型范围,避免无效选择。
args[i].when
(高级用法)参数的出现条件。参数默认不会在安装界面出现,只有满足 when 的条件时出现。可用于做安装组件的表单联动。
args[i].hidden
(高级用法)参数的隐藏条件。参数默认件会在安装界面出现,当满足 when 的条件时隐藏。可用于做安装组件的表单联动。
args[i].validator
(高级用法)参数的校验规则,可帮助用户减少配置失误。

在 tf 文件中使用安装参数

在 package.yaml 文件中定义好安装参数后,就可以在 tf 文件中声明使用。以下示例来自 CT_001_cvm-ip
# <variable.tf>
# CVM 机型选择变量
variable "cvm_type" {
type = object({
region = string
region_id = string
zone = string
instance_type = string
})
}
不同类型的安装参数,变量值的 type 是不同的,详见 安装参数手册
声明后,就可以当做普通的 Terraform 变量使用了。
# <deployment.tf>
resource "tencentcloud_instance" "demo_cvm" {
# CVM 机型
instance_type = var.cvm_type.instance_type
}

变量

声明变量

安装包中,所有用到的变量,都需要进行声明才能使用:
# <variable.tf>
# CVM 机型选择变量
variable "cvm_type" {
type = object({
region = string
region_id = string
zone = string
instance_type = string
})
}
跟资源块类似,使用变量块 variable 声明一个变量,上面的声明中 cvm_type为变量名,在资源块中用 var.cvm_type 即可引用。

变量分离实践

使用变量可以有效管理资源的编排参数。例如,服务商有两个编排架构基本一致的组件,只是服务器镜像不一样,就可以将镜像 ID 抽取成变量。
在实践中,推荐安装包的 infrastructure 目录按照 variable.tf 和 deployment.tf 来分离变量和编排的部分。可以参考云市场的模板库,获取更多实践思路。

变量类型

在安装包中,可使用的变量分为两种:系统变量和应用变量。
系统变量:用于提供部署所需信息,如镜像仓库地址与凭据、CAM 角色信息等,以 cloudapp_ 为前缀,所有安装包均可使用。
参数变量:在 package.yaml 定义的应用参数会生成对应的应用变量,变量名就是参数名。
普通变量:应用自己声明自己使用的变量,例如云服务器镜像 ID、数据库基本设置等。
关于系统变量的清单和信息,请参见 系统变量手册。关于应用参数的配置方法,请参见 安装参数手册
使用变量必须声明
即使系统变量和应用变量的值都是自动注入,在 TF 文件使用时却必须声明。不声明而直接使用的变量,会导致安装包打包失败。

输出

应用安装后的结果,需要提供给客户。例如应用的访问地址、管理系统的地址或者管理系统的初始密码等。可以通过在 tf 文件中声明 output 实现。
output "main" {
value = "https://my.${var.selected_domain}"
# value = "http://${tencentcloud_instance.cloudapp_cvm.public_ip}:8080"
description = "访问入口"
}
output "a_admin_url" {
value = "https://admin.${var.selected_domain}"
description = "运营系统系统"
}
output "b_admin_default_user" {
value = "admin"
description = "默认管理员用户"
}
output "c_admin_default_password" {
value = random_password.default_admin.result
description = "默认管理员密码"
sensitive = true
}
注意:
建议增加变量名为 main 的输出,并将 value 设置为 URL,该值会作为客户应用的默认打开地址。
如果声明了 sensitive = true,则表示为敏感信息(客户可以针对敏感信息接口进行 CAM 或者 MFA 安全限制)。
最终结果项的展示顺序并不以 tf 文件中声明顺序为准,而是按 output 变量名以字母序排序。
声明的输出,客户可以在看板应用详情中,看到对应的安装结果。




帮助和支持

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

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

文档反馈