当您使用ROS创建资源栈管理多种资源时,通常需要打开多个控制台查找资源参数信息。此时您可以在模板的参数配置中指定AssociationProperty以获取所选地域下对应的资源,指定AssociationPropertyMetadata对不同参数添加筛选条件,以便在控制台动态选择参数配置。
参数说明
AssociationPropertyMetadata参数的取值:
-
为参数指定特定值。例如:
"RegionId": "cn-hangzhou",ROS将填入特定的地域cn-hangzhou。 -
为参数指定变量,格式为
${ParameterKey}。例如:"VpcId": "${VpcId}",ROS将动态获取当前模板中参数VpcId对应的值。说明-
如果需要将
${ParameterKey}指定为固定值,可以增加感叹号(!)。例如:${!Literal}表示取值为${Literal}。 -
如果要在Terraform模板中使用参数变量,需要在
$前增加一个$。例如:"VpcId": "$${VpcId}",ROS将动态获取Terraform模板中VpcId对应的值。
-
ROS支持的AssociationProperty为不同资源时,对应的AssociationPropertyMetadata如下所示。
-
自定义资源:用于阿里云产品OpenApi根据参数进行数据查询等自定义资源配置
-
基础资源:通用基础参数类型的配置
-
ACR资源:容器镜像服务个人版资源
-
APIG资源:API网关资源
-
ALB资源:应用型负载均衡资源
-
Bailian资源:百炼资源
-
BSS资源:用户中心资源
-
CAS资源:SSL证书资源
-
CEN资源:云企业网资源
-
CMS资源:云监控资源
-
CR资源:容器镜像服务企业版资源
-
CS资源:容器服务Kubernetes资源
-
ComputeNest资源:计算巢资源
-
ComputeNestSupplier资源:计算巢服务商资源
-
DNS资源:云解析DNS资源
-
DashVector资源:DashVector向量检索服务资源
-
Domain资源:域名资源
-
EAS资源:机器学习PAI-EAS资源
-
ECD资源:云桌面资源
-
ECI资源:弹性容器实例资源
-
ECS资源:云服务器ECS资源
-
EHPC资源:弹性高性能计算资源
-
ESS资源:弹性伸缩资源
-
Elasticsearch资源:Elasticsearch资源
-
Emr资源:E-MapReduce资源
-
FC3资源:函数计算FC3资源
-
FC资源:函数计算FC资源
-
Flow资源:逻辑编排资源
-
Hologres资源:实时数仓Hologres资源
-
InfluxDB资源:时序数据库InfluxDB资源
-
Kafka资源:消息队列Kafka资源
-
Lindorm资源:云原生多模数据库Lindorm资源
-
MongoDB资源:云数据库MongoDB资源
-
NAS资源:文件存储NAS资源
-
NLB资源:网络型负载均衡NLB资源
-
OOS资源:运维编排服务资源
-
OSS资源:对象存储OSS资源
-
PolarDB资源:云原生数据库PolarDB资源
-
RAM资源:访问控制RAM资源
-
RDS资源:云数据库RDS资源
-
Redis资源:Redis资源
-
ResourceManager资源:资源管理资源
-
SAE资源:Serverless应用引擎资源
-
SLB资源:负载均衡SLB资源
-
ServiceCatalog资源:服务目录资源
-
Tag资源:标签资源
-
User资源:用户资源
-
VPC资源:专有网络VPC资源
使用示例
示例1:AssociationProperty示例
在参数中指定AssociationProperty取值为ALIYUN::ECS::Image::ImageId,以获取所选地域下所有的镜像ID。
JSON示例:
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"UserName": {
"Label": "用户名",
"Description": "请输入用户名",
"Default": "anonymous",
"Type": "String",
"MinLength": "6",
"MaxLength": "12",
"AllowedValues": [
"anonymous",
"user-one",
"user-two"
]
},
"PassWord": {
"Label": "密码",
"NoEcho": "True",
"Description": "请输入用户密码",
"Type": "String",
"MinLength": "1",
"MaxLength": "41",
"AllowedPattern": "[a-zA-Z0-9]*"
},
"ImageId": {
"Label": "镜像",
"Type": "String",
"Description": "请选择镜像",
"AssociationProperty": "ALIYUN::ECS::Image::ImageId",
"Default": "centos_7_7_x64_20G_alibase_2020****.vhd"
}
}
}
YAML示例:
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
UserName:
Label: 用户名
Description: 请输入用户名
Default: anonymous
Type: String
MinLength: '6'
MaxLength: '12'
AllowedValues:
- anonymous
- user-one
- user-two
PassWord:
Label: 密码
NoEcho: 'True'
Description: 请输入用户密码
Type: String
MinLength: '1'
MaxLength: '41'
AllowedPattern: '[a-zA-Z0-9]*'
ImageId:
Label: 镜像
Type: String
Description: 请选择镜像
AssociationProperty: ALIYUN::ECS::Image::ImageId
Default: centos_7_7_x64_20G_alibase_2020****.vhd
参数说明:
-
UserName:用户名。String类型,长度为6~12个字符,取值:
-
anonymous(默认值)
-
user-one
-
user-two
-
-
PassWord:密码。String类型,无默认值。长度为1~41个字符,支持大写英文字母、小写英文字母和数字。
NoEcho取值为true,表示查询资源栈时将不会返回参数值。
-
ImageId:镜像ID。String类型。
AssociationProperty取值为ALIYUN::ECS::Image::ImageId,创建资源栈时ROS控制台将会验证参数指定的镜像ID是否可用,并以下拉框的方式列出所选地域的其他镜像ID取值。
示例2:AssociationPropertyMetadata示例
在参数中指定AssociationProperty和对应的AssociationPropertyMetadata(RegionId、VpcId和ZoneId),以便获取指定专有网络和可用区的交换机。其中,RegionId取值为固定值cn-hangzhou;VpcId和ZoneId取值为变量${VpcId}和${EcsZone},将根据ALIYUN::ECS::VPC::VPCId和ZoneId选定的取值进行动态刷新,从而建立交换机与专有网络和可用区的关联关系。
针对EcsZone这类配置了AllowedValues的参数,通过在AssociationPropertyMetadata中加入AutoChangeType并配置取值为false从而实现在资源编排控制台页面对AllowedValues参数的配置信息展示为下拉列表样式。
JSON示例:
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"VpcId": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
},
"EcsZone": {
"Type": "String",
"AllowedValues": [
"cn-hangzhou-i",
"cn-hangzhou-j",
"cn-hangzhou-k",
"cn-hangzhou-h"
],
"AssociationPropertyMetadata": {
"AutoChangeType": false
}
},
"VSwitchId": {
"Type": "String",
"AssociationProperty": "ALIYUN::VPC::VSwitch::VSwitchId",
"AssociationPropertyMetadata": {
"RegionId": "cn-hangzhou",
"VpcId": "${VpcId}",
"ZoneId": "${EcsZone}"
}
}
}
}
YAML示例:
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VpcId:
Type: String
AssociationProperty: ALIYUN::ECS::VPC::VPCId
EcsZone:
Type: String
AllowedValues:
- cn-hangzhou-i
- cn-hangzhou-j
- cn-hangzhou-k
- cn-hangzhou-h
AssociationPropertyMetadata:
AutoChangeType: false
VSwitchId:
Type: String
AssociationProperty: ALIYUN::VPC::VSwitch::VSwitchId
AssociationPropertyMetadata:
RegionId: cn-hangzhou
VpcId: ${VpcId}
ZoneId: ${EcsZone}
示例3:Terraform自动转换示例
当AssociationProperty取值为Auto时,ROS会基于Terraform原始数据结构,自动生成AssociationProperty和AssociationPropertyMetadata等字段。
更多示例
您也可以使用AssociationProperty和AssociationPropertyMetadata,实现以下诉求: