基于参数关联关系动态呈现参数
1. 实验资源方式简介及开始实验
云起实验室实验资源方式介绍
云起实验室支持个人账户资源一种实验资源方式。
- 个人账户资源
- 使用您个人的云资源进行操作,资源归属于个人。
- 所有实验操作将保留至您的账号,请谨慎操作。
- 平台仅提供手册参考,不会对资源做任何操作。
- 说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。
准备开始实验
在实验开始前,请您选择其中一种实验资源,单击确认开启实验。
说明:每个实验所支持的实验资源方式都不相同,实验不一定能满足有三种实验资源方式,请根据实验的实际情况,进行选择。
2. 编写ROS模板
本步骤将指导您如何编写创建基于参数关联关系动态呈现参数的ROS模板。
当您使用ROS创建资源栈管理多种资源时,通常需要打开多个控制台查找资源参数信息。此时您可以在模板的参数配置中指定AssociationProperty以获取所选地域下对应的资源,指定AssociationPropertyMetadata对不同参数添加筛选条件,以便在控制台动态选择参数配置。更多信息,请参见AssociationProperty和AssociationPropertyMetadata。
- 模版语法。
您可以在参数中指定AssociationProperty和对应的AssociationPropertyMetadata,以便在指定计费方式下动态呈现对应参数。其中,AssociationPropertyMetadata需定义Visible字段,字段中使用函数定义参数是否呈现,具体如下:
Visible { Condition: Object; // 呈现当前参数时所依赖的条件。 }
Condition支持的函数和示例如下:
- Fn::Equals:"Fn::Equals": ['${ChargeType}', "PostPaid"]。
- Fn::Not:"Fn::Not": ${condition}。
- Fn::And:"Fn::And": [${condition1}, ${condition2}, ...]。
- Fn::Or:"Fn::Or": [${condition1}, ${condition2}, ...]。
- 定义模板参数(Parameters)。
参数 |
参数名称 |
参数说明 |
ChargeType |
计费方式 |
AssociationProperty取值为ChargeType,表示根据计费方式的取值筛选,ChargeType取值为PrePaid(包年包月计费)或PostPaid(按量计费)。 |
PeriodUnit |
包年包月计费方式的时长单位 |
AssociationPropertyMetadata取值为{"Visible": {"Condition": {"Fn::Not": {"Fn::Equals": ["${ChargeType}","PostPaid"]}}}},表示ChargeType取值不为PostPaid时,呈现PeriodUnit。 |
Period |
购买包年包月资源的时长 |
AssociationPropertyMetadata取值为{"Visible": {"Condition": {"Fn::Not": {"Fn::Equals": ["${ChargeType}","PostPaid"]}}}},表示ChargeType取值不为PostPaid时,呈现Period。 |
定义参数的关联属性(AssociationProperty和AssociationPropertyMetadata)后,ROS控制台将动态查询参数的取值列表。
- 创建基于参数关联关系动态呈现参数的ROS模板示例代码如下:
{ "ROSTemplateFormatVersion": "2015-09-01", "Parameters": { "ChargeType": { "Label": { "en": "Charge Type", "zh-cn": "计费方式" }, "Type": "String", "AssociationProperty": "ChargeType", "AssociationPropertyMetadata": { "LocaleKey": "InstanceChargeType" } }, "PeriodUnit": { "Label": { "en": "Period Unit", "zh-cn": "包年包月计费方式的时长单位" }, "Type": "String", "AllowedValues": ["Week", "Month"], "Default": "Month", "AssociationPropertyMetadata": { "Visible": { "Condition": { "Fn::Not": { "Fn::Equals": ["${ChargeType}", "PostPaid"] } } }, "LocaleKey": "PricingCycle" } }, "Period": { "Label": { "en": "Period", "zh-cn": "购买包年包月资源的时长" }, "Type": "Number", "AllowedValues": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, 60], "Default": 1, "AssociationPropertyMetadata": { "Visible": { "Condition": { "Fn::Not": { "Fn::Equals": ["${ChargeType}", "PostPaid"] } } } } } }, "Metadata": { "ALIYUN::ROS::Interface": { "ParameterGroups": [ { "Parameters": ["ChargeType", "PeriodUnit", "Period"], "Label": { "default": "公共配置" } } ], "TemplateTags": [ "acs:example:云起实验室:基于参数关联关系动态呈现参数", "acs:developer:云起实验室:基于参数关联关系动态呈现参数" ] } } }
3. 创建资源栈
本步骤将指导您如何使用您的阿里云账号,通过资源编排控制台创建基于参数关联关系动态呈现参数,以计费方式为例,展示在计费方式为包年包月时动态呈现包年包月的单位和时长。
- 前往资源编排控制台。
- 在资源栈列表页面,选择创建资源栈>使用新资源(标准)。
- 在选择模板页签,指定模板选择已有模板,模板录入方式选择输入模板,将上一小节中的创建基于参数关联关系动态呈现参数的ROS模板内容复制到模板内容输入框中,然后单击下一步。
- 模板参数关联关系动态呈现。
- 在配置模板参数页签,选择计费方式为包年包月,其展示信息如下。
- 在配置模板参数页签,选择计费方式为按量付费,其展示信息如下。
- 在配置模板参数页签,根据您的需求,选择其中一种计费方式,然后单击创建。
返回如下页面,单击图标刷新页面,状态变为创建成功,表示您已成功创建。
4. 查看资源栈
- 查看资源栈信息。
单击资源栈信息页签,您可以查看到资源栈的基本信息和资源栈策略。
- 查看资源栈事件。
单击事件页签,您可以查看资源栈生命周期中发生的每一个事件。
- 查看资源栈资源和输出。
本场景仅以计费方式为例,为您介绍如何在计费方式为包年包月时动态呈现包年包月的单位和时长,未涉及资源创建,故为空。
- 查看资源栈参数。
单击参数页签,您可以查看创建资源栈时,模板中指定的参数,包括ROS提供的以ALIYUN::开头的伪参数。此处我们重点关注ChargeType、PeriodUnit和Period的参数值。
- 查看资源栈模板。
单击模板页签,您可以查看资源栈所对应的模板信息。
5. 释放资源栈(可选)
本步骤将指导您如何释放通过资源编排控制台创建资源内容(本场景未涉及到付费资源的创建)。
1. 在模板页签,单击右上角的 图标。
2. 在资源栈列表页面,找到您创建的资源栈,单击操作列下的删除。
3. 在删除资源栈对话框中,删除方式选择释放资源,单击确定。
实验链接:https://developer.aliyun.com/adc/scenario/8a003d16ba18497ca15ad5d608fce965