使用ROS创建VPC和VSwitch
1. 实验资源方式简介及开始实验
云起实验室实验资源方式介绍
云起实验室支持个人账户资源一种实验资源方式。
- 个人账户资源
- 使用您个人的云资源进行操作,资源归属于个人。
- 所有实验操作将保留至您的账号,请谨慎操作。
- 平台仅提供手册参考,不会对资源做任何操作。
- 说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。
准备开始实验
在实验开始前,请您选择其中一种实验资源,单击确认开启实验。
说明:每个实验所支持的实验资源方式都不相同,实验不一定能满足有三种实验资源方式,请根据实验的实际情况,进行选择。
2. 前置知识
本步骤为您讲解ROS模板,仅供学习,无需操作。
- ROS模板说明。
模板用于创建资源栈,是描述基础设施和架构的蓝图。您需要在模板中声明各类云服务的资源,然后通过ROS部署资源。
- ROS模板结构及参数说明。
{ "ROSTemplateFormatVersion" : "2015-09-01", "Description" : "模板描述信息,可用于说明模板的适用场景、架构说明等。", "Metadata" : { // 关于模板的元数据信息,例如存放用于可视化的布局信息。 }, "Parameters" : { // 定义创建资源栈时,用户可以定制化的参数。 }, "Mappings" : { // 定义映射信息表,映射信息是一种多层的Map结构。 }, "Conditions": { // 使用内部条件函数定义条件。这些条件确定何时创建关联的资源。 }, "Resources" : { // 所需资源的详细定义,包括资源间的依赖关系、配置细节等。 }, "Outputs" : { // 用于输出一些资源属性等有用信息。可以通过API或控制台获取输出的内容。 } }
参数说明:
- ROSTemplateFormatVersion:必选,ROS支持的模板版本号,当前版本号:2015-09-01。
- Description:可选,模板的描述信息。可用于说明模板的适用场景、架构说明等。通常情况下,对模板进行详细描述,有利于用户理解模板的内容。
- Metadata:可选,模板编写者可以使用Metadata来存放与模板相关的元数据信息,内容可以为JSON格式。
- Parameters:可选,定义创建资源栈时,模板用户可以定制化的参数。通常,模板的编辑者会把ECS的规格设计成一个参数。参数支持默认值。使用参数可以增强模板的灵活性,提高复用性。使用模板创建资源栈时,可以根据实际的评估结果来选择合适的规格。更多详细信息,请参见参数(Parameters)。
- Mappings:可选,Mappings定义了一个多层的映射表,可以通过Fn::FindInMap函数来选择Key对应的值,或根据不同的输入参数值作为Key来查找映射表。例如,您可以根据Region不同,自动查找Region-镜像映射表,从而找到适用的镜像。更多详细信息,请参见映射(Mappings)。
- Conditions:可选,Conditions使用Fn::And、Fn::Or、Fn::Not、Fn::Equals定义条件。多个条件之间使用半角逗号(,)隔开。在创建或更新资源栈时,系统先计算模板中的所有条件,然后再创建资源。创建与true条件关联的所有资源,忽略与false条件关联的所有资源。更多详细信息,请参见条件(Conditions)。
- Resources:可选,用于详细定义使用该模板创建的资源栈所包含的资源,包括资源间的依赖关系、配置细节等。更多详细信息,请参见资源(Resources)。
- Outputs:可选,用于输出一些资源属性等有用信息。可以通过API或控制台获取输出的内容。更多详细信息,请参见输出(Outputs)。
3. 编写ROS模板
本步骤将指导您如何编写创建VPC和VSwitch的ROS模板。
编写模板最为重要的部分是在资源(Resources)中声明需要创建的资源,您可以在资源类型索引中查看ROS支持的所有资源类型,然后单击特定资源类型查看该资源类型支持的属性和返回值信息。
- 查询资源类型详情。
1.1 访问资源类型索引,根据部署场景查询资源类型(例如:创建VPC需要用到资源类型ALIYUN::ECS::VPC)。
1.2 访问指定资源类型(例如:ALIYUN::ECS::VPC),查询属性详情。 资源类型文档中为每个属性定义了“类型”、“必须”、“允许更新”、“描述”、“约束”等信息,其中:
1.2.1 若“必须”为是,则要求必须在模板Resources的Properties中声明该属性;反之,则选填。
1.2.2 若“允许更新”为是,则意味着新模板中可以修改此属性,再使用新模板去更新资源栈以达到更新云资源属性的目的;反之,则不允许更新。
- 声明创建的资源(Resources)。
您可以定义专有网络名称(VpcName)和专有网络网段(CidrBlock)、交换机可用区(ZoneId)、交换机名称(VSwitchName)、交换机网段(CidrBlock),编写Resources模板示例代码段。
"Resources": { "VPC": { "Type": "ALIYUN::ECS::VPC", "Properties": { "VpcName": "CreateVPCTest", "CidrBlock": "192.168.0.0/16" } }, "VSwitch": { "Type": "ALIYUN::ECS::VSwitch", "Properties": { "VpcId": { "Ref": "VPC" }, "ZoneId": "cn-beijing-h", "VSwitchName": "CreateVSWTest", "CidrBlock": "192.168.0.0/24" } } }
注意 :
在Resources我们定义声明了VPC与VSwitch两个资源,由于VSwitch是依赖VPC创建完成后才能被创建的,所以正常模式下我们需要在VSwitch资源中添加DependsOn属性以实现VSwitch资源在VPC资源之后被创建,但由于我们在VSwitch资源中使用Ref函数引用获取了VPC资源的VpcId属性,所以不需要特别添加DependsOn依赖关系资源编排服务会自动根据这种引用关系去编排创建对应的资源。添加DependsOn属性的示例代码如下所示。
"Resources": { "VPC": { "Type": "ALIYUN::ECS::VPC", "Properties": { "VpcName": "CreateVPCTest", "CidrBlock": "192.168.0.0/16" } }, "VSwitch": { "Type": "ALIYUN::ECS::VSwitch", "DependsOn": "VPC", "Properties": { "VpcId": { "Ref": "VPC" }, "ZoneId": "cn-beijing-h", "VSwitchName": "CreateVSWTest", "CidrBlock": "192.168.0.0/24" } } }
- 定义模版参数(Parameters)。
参数 |
说明 |
VpcName |
默认值为CreateVPCTest,被VPC的VpcName属性引用。 |
VpcCidrBlock |
默认值为192.168.0.0/16,被VPC的CidrBlock属性引用。 |
VswName |
默认值为CreateVSWTest,被VSwitch的VSwitchName。 |
ZoneId |
被VSwitch的ZoneId属性引用。 |
VswCidrBlock |
默认值为192.168.0.0/24,被VSwitch的CidrBlock属性引用。 |
在模板中为资源属性指定固定值的方式比较便捷,但是不够灵活。参数可以提高模板的灵活性和可复用性,您可以通过定义参数取值和参数属性实现动态展示参数取值列表、为参数分组等需求,例如:CidrBlock为192.168.0.0/16,只能配置192.168.0.0/16的IPv4网段来创建专有网络,如果要更换IPv4网段创建专有网络需手动修改模板中的CidrBlock取值。此时您可以将常用的或共同的属性提取出来定义为参数,以便在不修改模板的前提下,通过指定不同的参数来创建不同属性的资源。模板中定义的参数示例代码段如下:
"Parameters": { "VpcName": { "Type": "String", "Default": "CreateVPCTest" }, "VpcCidrBlock": { "Type": "String", "Default": "192.168.0.0/16" }, "VswName": { "Type": "String", "Default": "CreateVSWTest" }, "ZoneId": { "Type": "String" }, "VswCidrBlock": { "Type": "String", "Default": "192.168.0.0/24" } }
- 定义模版的输出(Outputs)内容
在输出(Outputs)中定义使用模板创建资源栈后的输出内容。
您可以定义专有网络ID(VpcId),编写Outputs模板示例代码段。
"Outputs": { "VpcId": { "Value": { "Ref": "VPC" } }, "VRouterId": { "Value": { "Fn::GetAtt": ["VPC", "VRouterId"] } }, "VSwitchId": { "Value": { "Ref": "VSwitch" } } }
- 创建VPC模板。
根据步骤1~4,定义出完整模板如下。
{ "ROSTemplateFormatVersion": "2015-09-01", "Parameters": { "VpcName": { "Type": "String", "Default": "CreateVPCTest" }, "VpcCidrBlock": { "Type": "String", "Default": "192.168.0.0/16" }, "VswName": { "Type": "String", "Default": "CreateVSWTest" }, "ZoneId": { "Type": "String" }, "VswCidrBlock": { "Type": "String", "Default": "192.168.0.0/24" } }, "Resources": { "VPC": { "Type": "ALIYUN::ECS::VPC", "Properties": { "VpcName": "CreateVPCTest", "CidrBlock": { "Ref": "VpcCidrBlock" } } }, "VSwitch": { "Type": "ALIYUN::ECS::VSwitch", "Properties": { "VpcId": { "Ref": "VPC" }, "ZoneId": { "Ref": "ZoneId" }, "VSwitchName": "CreateVSWTest", "CidrBlock": { "Ref": "VswCidrBlock" } } } }, "Outputs": { "VpcId": { "Value": { "Ref": "VPC" } }, "VRouterId": { "Value": { "Fn::GetAtt": [ "VPC", "VRouterId" ] } }, "VSwitchId": { "Value": { "Ref": "VSwitch" } } }, "Metadata": { "TemplateTags": [ "acs:developer:云起实验室:创建VPC和VSwitch" ] } }
4. 创建资源栈
本步骤将指导您如何使用您的阿里云账号,通过资源编排控制台创建VPC和VSwitch。
- 前往资源编排控制台。
- 在资源栈列表页面,选择创建资源栈>使用新资源(标准)。
- 在选择模板页签,指定模板选择已有模板,模板录入方式选择输入模板,将上一小节中的创建VPC模板内容复制到模板内容输入框中,然后单击下一步。
{ "ROSTemplateFormatVersion": "2015-09-01", "Parameters": { "VpcName": { "Type": "String", "Default": "CreateVPCTest" }, "VpcCidrBlock": { "Type": "String", "Default": "192.168.0.0/16" }, "VswName": { "Type": "String", "Default": "CreateVSWTest" }, "ZoneId": { "Type": "String" }, "VswCidrBlock": { "Type": "String", "Default": "192.168.0.0/24" } }, "Resources": { "VPC": { "Type": "ALIYUN::ECS::VPC", "Properties": { "VpcName": "CreateVPCTest", "CidrBlock": { "Ref": "VpcCidrBlock" } } }, "VSwitch": { "Type": "ALIYUN::ECS::VSwitch", "Properties": { "VpcId": { "Ref": "VPC" }, "ZoneId": { "Ref": "ZoneId" }, "VSwitchName": "CreateVSWTest", "CidrBlock": { "Ref": "VswCidrBlock" } } } }, "Outputs": { "VpcId": { "Value": { "Ref": "VPC" } }, "VRouterId": { "Value": { "Fn::GetAtt": [ "VPC", "VRouterId" ] } }, "VSwitchId": { "Value": { "Ref": "VSwitch" } } } }
- 在配置模板参数页签,ZoneId选择任意一个可用区,例如cn-beijing-a,其他参数配置保持默认即可,然后单击创建。
返回如下页面,单击图标刷新页面,状态变为创建成功,表示您已成功创建VPC和VSwicth。
5. 查看资源栈
本步骤将指导您在完成创建资源栈操作后,如何查询资源栈详情。
- 查看资源栈信息。
单击资源栈信息页签,您可以查看到资源栈的基本信息和资源栈策略。
- 查看资源栈事件。
单击事件页签,您可以查看资源栈生命周期中发生的每一个事件。
- 查看资源栈资源。
单击资源页签,您可以查看资源栈所包括的每一个资源的信息。
- 查看资源栈输出。
单击输出页签,您可以查看创建资源栈时,模板中指定的输出信息。
- 查看资源栈参数。
单击参数页签,您可以查看创建资源栈时,模板中指定的参数,包括ROS提供的以ALIYUN::开头的伪参数。
- 查看资源栈模版。
单击模板页签,您可以查看资源栈所对应的模板信息。
6. 释放资源
本步骤将指导您如何释放通过资源编排控制台创建的VPC和VSwitch资源。
- 在模板页签,单击右上角的 图标。
- 在资源栈列表页面,找到您创建的资源栈,单击操作列下的删除。
- 在删除资源栈对话框中,删除方式选择释放资源,单击确定。
实验地址:https://developer.aliyun.com/adc/scenario/531d8fc324954c08964acf15518470fe