Use ALIYUN::VPC::EIPAssociation to associate an Elastic IP Address (EIP) with a cloud service instance.
Syntax
{
"Type": "ALIYUN::VPC::EIPAssociation",
"Properties": {
"AllocationId": String,
"InstanceId": String,
"PrivateIpAddress": String,
"Mode": String
}
} Properties
Property name | Type | Required | Update allowed | Description | Constraint |
AllocationId | String | Yes | Yes | The ID of the EIP. | None |
InstanceId | String | Yes | Yes | The ID of the cloud service instance. | Supported cloud service instance types include the following:
|
PrivateIpAddress | String | No | Yes | A private IP address in the vSwitch CIDR block. | If you do not specify this parameter, the system automatically assigns a private IP address based on the VPC ID and vSwitch ID. |
Mode | String | No | Yes | The association mode. | Valid values:
|
Return values
Fn::GetAtt
EipAddress: The IP address of the EIP.
AllocationId: The ID of the EIP.
Examples
Scenario 1: Create one ECS instance and associate it with an EIP.
ROSTemplateFormatVersion: '2015-09-01'
Description:
en: Create a VPC type ECS and bind EIP (existing VPC).
zh-cn: Create a VPC-type ECS instance and bind an EIP (for an existing VPC).
Parameters:
VPC:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
Description:
en: Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud.
zh-cn: The ID of an existing VPC. You can find the ID in the Virtual Private Cloud console.
Label:
en: VPC ID
zh-cn: VPC ID
VSwitch:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
AssociationPropertyMetadata:
VpcId: ${VPC}
Type: String
Description:
en: Existing VSwitch ID, query under console-VPC-VSwitch, <font color='red'>VSwitch must be under VPC. ECS will be created under this VSwitch.</font>
zh-cn: The ID of an existing vSwitch. You can find the ID in the Virtual Private Cloud console. <font color='red'>The vSwitch must be in the VPC. The ECS instance will be created in this vSwitch.</font>
Label:
en: VSwitch ID
zh-cn: vSwitch ID
SecurityGroup:
Type: String
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
Description:
en: Please search the business security group ID starting with (sg-xxx) from console-ECS-Network & Security.
zh-cn: The ID of an existing security group. You can find the ID in the ECS console.
<font color='red'>The security group must be in the VPC.</font>
Label:
en: Business Security Group ID
zh-cn: Security Group ID
AssociationPropertyMetadata:
VpcId: ${VPC}
ECSInstanceType:
AssociationPropertyMetadata:
InstanceChargeType: ${ECSInstanceType}
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
Type: String
Description:
en: <font color='blue'><b>1.Before selecting the model please confirm that the current available zone under the model is in stock, some models need to be reported in advance</font><br/><font color='blue'><b>2.List of optional models</font><br></font>[ecs.c5.large <font color='green'>2vCPU 4GiB Intranet bandwidth1Gbps In-grid sending and receiving packages30MillionPPS</font>]<br/>[ecs.c5.xlarge <font color='green'>4vCPU 8GiB Intranet bandwidth1.5Gbps In-grid sending and receiving packages50MillionPPS</font>]<br/>[ecs.c5.2xlarge <font color='green'>8vCPU 16GiB Intranet bandwidth2.5Gbps In-grid sending and receiving packages80MillionPPS</font>]
zh-cn: <font color='blue'><b>1. Before you select an instance type, confirm that it is in stock in the current zone. You may need to submit a request for some instance types in advance.</font>
<font color='blue'><b>2. Valid values:</font>
[ecs.c5.large: <font color='green'>2 vCPUs, 4 GiB of memory, 1 Gbit/s of internal bandwidth, and a packet forwarding rate of 300,000 PPS.</font>]<br/>[ecs.c5.xlarge: <font color='green'>4 vCPUs, 8 GiB of memory, 1.5 Gbit/s of internal bandwidth, and a packet forwarding rate of 500,000 PPS.</font>]<br/>[ecs.c5.2xlarge: <font color='green'>8 vCPUs, 16 GiB of memory, 2.5 Gbit/s of internal bandwidth, and a packet forwarding rate of 800,000 PPS.</font>]
Label:
en: Instance Type
zh-cn: Instance Type
ECSDiskCategory:
Type: String
Description:
en: '<font color=''blue''><b>Optional values:</font>
[cloud_efficiency: <font color=''green''>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color=''green''>SSD Cloud Disk</font>]<br>[cloud_essd: <font color=''green''>ESSD Cloud Disk</font>]<br>[cloud: <font color=''green''>Cloud Disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD Cloud Disk</font>]'
zh-cn: '<font color=''blue''><b>Valid values:</font>
[cloud_efficiency: <font color=''green''>ultra disk</font>]<br/>[cloud_ssd: <font color=''green''>standard SSD</font>]<br/>[cloud_essd: <font color=''green''>enterprise SSD</font>]<br/>[cloud: <font color=''green''>basic disk</font>]<br/>[ephemeral_ssd: <font color=''green''>local SSD</font>]'
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
InstanceType: ${ECSInstanceType}
Label:
en: System Disk Type
zh-cn: System Disk Type
InstanceChargeType:
Type: String
Label:
en: Instance Charge Type
zh-cn: Instance Billing Method
Description:
en: '<font color=''blue''><b>Optional values:</font>
[PostPaid: <font color=''green''>Pay as you go.</font>]<br> [PrePaid: <font color=''green''>Prepaid, monthly subscription.</font>]'
zh-cn: '<font color=''blue''><b>Valid values:</font><br/>[PostPaid: <font color=''green''>Pay-as-you-go.</font>]<br/>[PrePaid: <font color=''green''>Subscription.</font>]'
AllowedValues:
- PostPaid
- PrePaid
Default: PostPaid
KeyPairName:
Type: String
AssociationProperty: ALIYUN::ECS::KeyPair::KeyPairName
Label:
en: Key Pair Name
zh-cn: Key Pair Name
Description:
en: If it is a Windows ECS instance, ignore this parameter. The default is blank.<br>If you have filled in <font color='green'>key pair name</font>, <font color='green'>instance password< The content of /font> will still be set in the instance, but the password login method in the Linux system will be forbidden.<br><font color='red'>Please enter the name of the existing key pair. If you use the instance password Login, the key pair name does not need to be filled in.</font>
zh-cn: This parameter is ignored for Windows ECS instances. By default, this parameter is left empty.<br>If you specify a <font color='green'>key pair name</font>, the value of the <font color='green'>instance password</font> parameter is still configured for the instance, but password-based logon is disabled for the Linux operating system.<br><font color='red'>Enter the name of an existing key pair. If you use a password to log on to the instance, you do not need to specify a key pair name.</font>
Default: Null
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- VPC
- VSwitch
- SecurityGroup
Label:
default: 'VPC '
- Parameters:
- ECSInstanceType
- ECSDiskCategory
- InstanceChargeType
- KeyPairName
Label:
default: ECS
TemplateTags:
- Specify the image Id and snapshot to create ECS instance.
Resources:
ECSInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
IoOptimized: optimized
InstanceChargeType:
Ref: InstanceChargeType
SystemDisk_Category:
Ref: ECSDiskCategory
SecurityGroupId:
Ref: SecurityGroup
VSwitchId:
Ref: VSwitch
MaxAmount: 1
SystemDisk_Size: 40
VpcId:
Ref: VPC
ImageId: ubuntu_14
InstanceType:
Ref: ECSInstanceType
AllocatePublicIP: 'false'
Password: Admin@123!
KeyPairName:
Ref: KeyPairName
ElasticIp:
Type: ALIYUN::VPC::EIP
Properties:
Bandwidth: 5
InternetChargeType: PayByTraffic
ElasticIpAssociation:
Type: ALIYUN::VPC::EIPAssociation
Properties:
InstanceId:
Fn::Select:
- 0
- Fn::GetAtt:
- ECSInstanceGroup
- InstanceIds
AllocationId:
Ref: ElasticIp
Outputs:
VpcId:
Description: VPC Id
Value:
Ref: VPC
SecurityGroupId:
Description: Security Group Id
Value:
Ref: SecurityGroup
VSwitchId:
Description: VSwitch Id
Value:
Ref: VSwitch
EipAddress:
Description: IP address of created EIP.
Value:
Fn::GetAtt:
- ElasticIp
- EipAddress
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": {
"en": "Create a VPC type ECS and bind EIP (existing VPC).",
"zh-cn": "创建VPC类型ECS,并绑定EIP(已有VPC)。"
},
"Parameters": {
"VPC": {
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
"Type": "String",
"Description": {
"en": "Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud.",
"zh-cn": "现有专有网络的实例ID,在专有网络控制台选择专有网络进行查询。"
},
"Label": {
"en": "VPC ID",
"zh-cn": "专有网络VPC实例ID"
}
},
"VSwitch": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"AssociationPropertyMetadata": {
"VpcId": "${VPC}"
},
"Type": "String",
"Description": {
"en": "Existing VSwitch ID, query under console-VPC-VSwitch, <font color='red'>VSwitch must be under VPC. ECS will be created under this VSwitch.</font>",
"zh-cn": "现有交换机ID,在专有网络控制台选择交换机进行查询,<font color='red'>交换机必须在VPC下。ECS将创建在此交换机下。</font>"
},
"Label": {
"en": "VSwitch ID",
"zh-cn": "交换机实例ID"
}
},
"SecurityGroup": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
"Description": {
"en": "Please search the business security group ID starting with (sg-xxx) from console-ECS-Network & Security.",
"zh-cn": "现有业务安全组的实例ID,在ECS控制台选择安全组进行查询。
<font color='red'>安全组必须归属在VPC下。</font>"
},
"Label": {
"en": "Business Security Group ID",
"zh-cn": "业务安全组ID"
},
"AssociationPropertyMetadata": {
"VpcId": "${VPC}"
}
},
"ECSInstanceType": {
"AssociationPropertyMetadata": {
"InstanceChargeType": "${ECSInstanceType}"
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"Type": "String",
"Description": {
"en": "<font color='blue'><b>1. Before selecting the model, confirm that the model is available in the current zone. Some models require advance notification.</font>
<font color='blue'><b>2. Optional models:</font>
[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB, intranet bandwidth: 1 Gbps, intranet sending and receiving packets: 30 Million PPS</font>]<br>[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB, intranet bandwidth: 1.5 Gbps, intranet sending and receiving packets: 50 Million PPS</font>]<br>[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB, intranet bandwidth: 2.5 Gbps, intranet sending and receiving packets: 80 Million PPS</font>]",
"zh-cn": "<font color='blue'><b>1、选择机型前请先确认当前可用区下该机型是否有货,部分机型需要提前报备。</font>
<font color='blue'><b>2、取值: </font><br></font>[ecs.c5.large: <font color='green'>2vCPU 4 GiB,内网带宽1Gbps、内网收发包30万PPS。</font>]<br>[ecs.c5.xlarge: <font color='green'>4vCPU 8GiB,内网带宽1.5Gbps、内网收发包50万PPS。</font>]<br>[ecs.c5.2xlarge: <font color='green'>8vCPU 16 GiB,内网带宽2.5 Gbps、内网收发包80万PPS。</font>]"
},
"Label": {
"en": "Instance Type",
"zh-cn": "实例规格"
}
},
"ECSDiskCategory": {
"Type": "String",
"Description": {
"en": "<font color='blue'><b>Optional values:</font>
[cloud_efficiency: <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font color='green'>Cloud Disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD Cloud Disk</font>]",
"zh-cn": "<font color='blue'><b>取值: </font><br>[cloud_efficiency: <font color='green'>高效云盘</font>]<br>[cloud_ssd: <font color='green'>SSD云盘</font>]<br>[cloud_essd: <font color='green'>ESSD云盘</font>]<br>[cloud: <font color='green'>普通云盘</font>]<br>[ephemeral_ssd: <font color='green'>本地SSD盘</font>]"
},
"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
"AssociationPropertyMetadata": {
"InstanceType": "${ECSInstanceType}"
},
"Label": {
"en": "System Disk Type",
"zh-cn": "系统盘类型"
}
},
"InstanceChargeType": {
"Type": "String",
"Label": {
"en": "Instance Charge Type",
"zh-cn": "实例的付费方式"
},
"Description": {
"en": "<font color='blue'><b>Optional values:</font><br>[PostPaid: <font color='green'>Pay as you go.</font>]<br> [PrePaid: <font color='green'>Prepaid, monthly subscription.</font>]",
"zh-cn": "<font color='blue'><b>取值: </font><br>[PostPaid: <font color='green'>按量付费。</font>]<br>[PrePaid: <font color='green'>预付费,包年包月。</font>]"
},
"AllowedValues": [
"PostPaid",
"PrePaid"
],
"Default": "PostPaid"
},
"KeyPairName": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::KeyPair::KeyPairName",
"Label": {
"en": "Key Pair Name",
"zh-cn": "密钥对名称"
},
"Description": {
"en": "If it is a Windows ECS instance, ignore this parameter. The default is blank.<br>If you have filled in <font color='green'>key pair name</font>, <font color='green'>instance password</font> will still be set in the instance, but the password login method in the Linux system will be forbidden.<br><font color='red'>Please enter the name of the existing key pair. If you use the instance password login, the key pair name does not need to be filled in.</font>",
"zh-cn": "如果是Windows ECS实例,则忽略该参数。默认为空。<br>如果已填写<font color='green'>密钥对名称</font>,<font color='green'>实例密码</font>的内容仍会被设置到实例中,但是Linux系统中的密码登录方式会被禁止。<br><font color='red'>请输入已有密钥对的名称。如使用实例密码登录,密钥对名称不需要填写。</font>"
},
"Default": null
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"VPC",
"VSwitch",
"SecurityGroup"
],
"Label": {
"default": "VPC "
}
},
{
"Parameters": [
"ECSInstanceType",
"ECSDiskCategory",
"InstanceChargeType",
"KeyPairName"
],
"Label": {
"default": "ECS"
}
}
],
"TemplateTags": [
"Specify the image Id and snapshot to create ECS instance."
]
}
},
"Resources": {
"ECSInstanceGroup": {
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"IoOptimized": "optimized",
"InstanceChargeType": {
"Ref": "InstanceChargeType"
},
"SystemDisk_Category": {
"Ref": "ECSDiskCategory"
},
"SecurityGroupId": {
"Ref": "SecurityGroup"
},
"VSwitchId": {
"Ref": "VSwitch"
},
"MaxAmount": 1,
"SystemDisk_Size": 40,
"VpcId": {
"Ref": "VPC"
},
"ImageId": "ubuntu_14",
"InstanceType": {
"Ref": "ECSInstanceType"
},
"AllocatePublicIP": "false",
"Password": "Admin@123!",
"KeyPairName": {
"Ref": "KeyPairName"
}
}
},
"ElasticIp": {
"Type": "ALIYUN::VPC::EIP",
"Properties": {
"Bandwidth": 5,
"InternetChargeType": "PayByTraffic"
}
},
"ElasticIpAssociation": {
"Type": "ALIYUN::VPC::EIPAssociation",
"Properties": {
"InstanceId": {
"Fn::Select": [
0,
{
"Fn::GetAtt": [
"ECSInstanceGroup",
"InstanceIds"
]
}
]
},
"AllocationId": {
"Ref": "ElasticIp"
}
}
}
},
"Outputs": {
"VpcId": {
"Description": "VPC Id",
"Value": {
"Ref": "VPC"
}
},
"SecurityGroupId": {
"Description": "Security Group Id",
"Value": {
"Ref": "SecurityGroup"
}
},
"VSwitchId": {
"Description": "VSwitch Id",
"Value": {
"Ref": "VSwitch"
}
},
"EipAddress": {
"Description": "IP address of created EIP.",
"Value": {
"Fn::GetAtt": [
"ElasticIp",
"EipAddress"
]
}
}
}
}Scenario 2: Create multiple ECS instances and associate them with EIPs
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: Create a specified number of ECS instances in a Virtual Private Cloud (VPC), equipped with Elastic IP addresses (EIPs), billed by configuration and bandwidth usage, and deployed in the specified vSwitch and security group.
en: Provision a specified number of ECS instances within a designated VPC, equipped with Elastic IP Addresses (EIPs), billed by configuration and bandwidth usage, placed under the specified virtual switch (VSwitch) and security group.
Parameters:
VPC:
Type: String
Label:
en: VPC ID
zh-cn: the VPC ID.
Description:
en: Search for the ID that starts with vpc-xxx in the console under Virtual Private Cloud.
zh-cn: Find the ID of your existing VPC in the console under Virtual Private Cloud.
AssociationProperty: ALIYUN::ECS::VPC::VPCId
VSwitch:
Type: String
Label:
en: VSwitch ID
zh-cn: the vSwitch ID.
Description:
en: Existing VSwitch ID. Find it in the console under VPC > vSwitch. <font color='red'>The VSwitch must be in the selected VPC. ECS instances will be created in this VSwitch.</font>
zh-cn: Find the ID of your existing VSwitch in the console under VPC > vSwitch. <font color='red'>The VSwitch must be in the selected VPC. ECS instances will be created in this VSwitch.</font>
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
AssociationPropertyMetadata:
VpcId: ${VPC}
ZoneId: ${ECSZoneId}
SecurityGroup:
Type: String
Label:
en: Business Security Group ID
zh-cn: the business security group ID.
Description:
en: Search for the business security group ID that starts with sg-xxx in the console under ECS > Network & Security.
zh-cn: Find the ID of your existing business security group in the console under ECS > Network & Security > Security Groups.
<font color='red'>The security group must belong to the selected VPC.</font>
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
AssociationPropertyMetadata:
VpcId: ${VPC}
EIPBandwidth:
Type: Number
Label:
en: EIP Bandwidth
zh-cn: Elastic IP address bandwidth.
Description:
en: EIP bandwidth. Valid values: 1 to 200. Unit: Mbps.
zh-cn: Elastic IP address bandwidth. Valid values: 1 to 200. Unit: Mbps.
Default: 1
MinValue: 1
MaxValue: 200
EIPInternetChargeType:
Type: String
Label:
en: EIP Charge Type
zh-cn: EIP charge type.
AssociationPropertyMetadata:
LocaleKey: InternetChargeType
Default: PayByTraffic
AllowedValues:
- PayByBandwidth
- PayByTraffic
Count:
Type: Number
Label:
en: Count
zh-cn: Count
Description:
en: Number of ECS instances and EIPs to create. Valid values: 1 to 140.
zh-cn: Number of ECS instances and EIPs to create. Valid values: 1 to 140.
Default: 2
MinValue: 1
MaxValue: 140
ECSZoneId:
Type: String
Label:
en: VSwitch Availability Zone
zh-cn: the vSwitch zone
Description:
en: Availability zone ID. <br><b>Note: <font color='blue'>Before you select an availability zone, confirm that it supports the instance type you plan to use. We recommend choosing a different availability zone than other VSwitches.</font><br/><font color='red'>The availability zone of the VSwitch and the selected VSwitch ID must match.</font>
zh-cn: Availability zone ID. <br><b>Note: <font color='blue'>Before you select an availability zone, confirm that it supports the instance type you plan to use. We recommend choosing a different availability zone than other VSwitches.</font><br/><font color='red'>The availability zone of the VSwitch and the selected VSwitch ID must match.</font>
AssociationProperty: ALIYUN::ECS::Instance:ZoneId
ECSImageId:
Type: String
Label:
en: Image
zh-cn: Image
Description:
en: Image ID. Use CentOS 7. For details, see <b><a href='https://www.alibabacloud.com/help/en/doc-detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>.
zh-cn: Image ID. Use CentOS 7. For details, see <b><a href='https://www.alibabacloud.com/help/document_detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>.
AssociationProperty: ALIYUN::ECS::Image::ImageId
AssociationPropertyMetadata:
InstanceType: ${ECSInstanceType}
SupportedImageOwnerAlias:
- system
- self
- others
Default: centos_7_04_64_20G_alibase_201701015.vhd
ECSInstanceType:
Type: String
Label:
en: Instance Type
zh-cn: Instance Type
Description:
en: <font color='blue'>1. Before selecting an instance type, confirm that it is available in the selected availability zone. Some instance types require advance notice.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbps internal bandwidth, 30 million PPS</font>]<br/>[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbps internal bandwidth, 50 million PPS</font>]<br/>[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbps internal bandwidth, 80 million PPS</font>]
zh-cn: <font color='blue'><b>1. Before selecting an instance type, confirm that it is available in the selected availability zone. Some instance types require advance notice.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbps internal bandwidth, 300,000 PPS</font>]<br/>[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbps internal bandwidth, 500,000 PPS</font>]<br/>[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbps internal bandwidth, 800,000 PPS</font>]
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ECSZoneId
ECSDiskCategory:
Type: String
Label:
en: System Disk Type
zh-cn: System Disk Type
Description:
en: <font color='blue'><b>Valid values:</font><br/>[cloud_efficiency: <font color='green'>Ultra disk</font>]<br>[cloud_ssd: <font color='green'>Standard SSD</font>]<br>[cloud_essd: <font color='green'>Enterprise SSD</font>]<br>[cloud: <font color='green'>Basic disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD disk</font>]
zh-cn: <font color='blue'><b>Valid values:</font><br>[cloud_efficiency: <font color='green'>Ultra disk</font>]<br>[cloud_ssd: <font color='green'>Standard SSD</font>]<br>[cloud_essd: <font color='green'>Enterprise SSD</font>]<br>[cloud: <font color='green'>Basic disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD disk</font>]
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
LocaleKey: DiskCategory
InstanceType: ${ECSInstanceType}
ECSSysDiskSize:
Type: Number
Label:
en: System Disk Space
zh-cn: System Disk Space
Description:
en: System disk size. Valid values: 40 to 500. Unit: GB.
zh-cn: System disk size. Valid values: 40 to 500. Unit: GB.
Default: 40
MinValue: 40
MaxValue: 500
ECSPassword:
Type: String
NoEcho: true
Label:
en: Instance Password
zh-cn: Instance Password
Description:
en: Server logon password. Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, numbers, and special characters such as ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.
zh-cn: Server logon password. Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, numbers, and special characters such as ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.
ConstraintDescription:
en: Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, numbers, and special characters such as ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.
zh-cn: Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, numbers, and special characters such as ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.
Default: Null
AssociationProperty: ALIYUN::ECS::Instance::Password
KeyPairName:
Type: String
Label:
en: Key Pair Name
zh-cn: Key Pair Name
Description:
en: Ignore this parameter if you are creating a Windows ECS instance. The default value is empty.<br>If you specify a <font color='green'>key pair name</font>, the <font color='green'>instance password</font> is still set on the instance, but password-based logon is disabled for Linux instances.<br><font color='red'>Enter the name of an existing key pair. If you use the instance password to log on, leave this field blank.</font>
zh-cn: Ignore this parameter if you are creating a Windows ECS instance. The default value is empty.<br>If you specify a <font color='green'>key pair name</font>, the <font color='green'>instance password</font> is still set on the instance, but password-based logon is disabled for Linux instances.<br><font color='red'>Enter the name of an existing key pair. If you use the instance password to log on, leave this field blank.</font>
AssociationProperty: ALIYUN::ECS::KeyPair::KeyPairName
Default: Null
PayType:
Type: String
Label:
en: ECS Instance Charge Type
zh-cn: ECS instance charge type
AssociationProperty: ChargeType
AssociationPropertyMetadata:
LocaleKey: InstanceChargeType
Default: PostPaid
AllowedValues:
- PostPaid
- PrePaid
PayPeriodUnit:
Type: String
Label:
en: Pay Period Unit
zh-cn: Pay Period Unit
AssociationProperty: PayPeriodUnit
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
Default: Month
AllowedValues:
- Month
- Year
PayPeriod:
Type: Number
Label:
en: Period
zh-cn: Period
AssociationProperty: PayPeriod
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
Default: 1
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Resources:
ECSInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
ZoneId:
Ref: ECSZoneId
VpcId:
Ref: VPC
VSwitchId:
Ref: VSwitch
SecurityGroupId:
Ref: SecurityGroup
ImageId:
Ref: ECSImageId
AllocatePublicIP: 'false'
InstanceChargeType:
Ref: PayType
Period:
Ref: PayPeriod
PeriodUnit:
Ref: PayPeriodUnit
InstanceType:
Ref: ECSInstanceType
IoOptimized: optimized
KeyPairName:
Ref: KeyPairName
MaxAmount:
Ref: Count
Password:
Ref: ECSPassword
SystemDiskCategory:
Ref: ECSDiskCategory
SystemDiskSize:
Ref: ECSSysDiskSize
ElasticIp:
Type: ALIYUN::VPC::EIP
Properties:
Bandwidth:
Ref: EIPBandwidth
InternetChargeType:
Ref: EIPInternetChargeType
Count:
Ref: Count
ElasticIpAssociation:
Type: ALIYUN::VPC::EIPAssociation
Properties:
InstanceId:
Fn::Select:
- Ref: ALIYUN::Index
- Fn::GetAtt:
- ECSInstanceGroup
- InstanceIds
AllocationId:
Fn::Select:
- Ref: ALIYUN::Index
- Ref: ElasticIp
Count:
Ref: Count
Outputs:
EipAddress:
Description: IP address of created EIP.
Value:
Fn::GetAtt:
- ElasticIp
- EipAddress
SecurityGroupId:
Description: generated security group id for security group.
Value:
Ref: SecurityGroup
VSwitchId:
Description: generated security vswitch id for VPC.
Value:
Ref: VSwitch
VpcId:
Description: generated security vpc id for VPC.
Value:
Ref: VPC
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- VPC
- ECSZoneId
- VSwitch
- SecurityGroup
Label:
default: 'VPC '
- Parameters:
- EIPBandwidth
- EIPInternetChargeType
Label:
default: EIP
- Parameters:
- PayType
- PayPeriodUnit
- PayPeriod
Label:
default:
en: ECS PayType Configuration
zh-cn: ECS PayType Configuration
- Parameters:
- ECSInstanceType
- ECSImageId
- ECSDiskCategory
- ECSSysDiskSize
- Count
- ECSPassword
- KeyPairName
Label:
default: ECS
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": {
"zh-cn": "创建指定数量的VPC内ECS实例,配备EIP,按配置计费与带宽,于指定交换机与安全组下。",
"en": "Provision a specified number of ECS instances within a designated Virtual Private Cloud (VPC), equipped with Elastic IP Addresses (EIPs), billed by configuration and bandwidth usage, placed under the specified virtual switch (VSwitch) and security group."
},
"Parameters": {
"VPC": {
"Type": "String",
"Label": {
"en": "VPC ID",
"zh-cn": "专有网络VPC实例ID"
},
"Description": {
"en": "Search for the ID that starts with vpc-xxx in the console under Virtual Private Cloud.",
"zh-cn": "Find the ID of your existing VPC in the console under Virtual Private Cloud."
},
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
},
"VSwitch": {
"Type": "String",
"Label": {
"en": "VSwitch ID",
"zh-cn": "交换机实例ID"
},
"Description": {
"en": "Existing VSwitch ID. Find it in the console under VPC > vSwitch. <font color='red'>The VSwitch must be in the selected VPC. ECS instances will be created in this VSwitch.</font>",
"zh-cn": "Find the ID of your existing VSwitch in the console under VPC > vSwitch. <font color='red'>The VSwitch must be in the selected VPC. ECS instances will be created in this VSwitch.</font>"
},
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"AssociationPropertyMetadata": {
"VpcId": "${VPC}",
"ZoneId": "${ECSZoneId}"
}
},
"SecurityGroup": {
"Type": "String",
"Label": {
"en": "Business Security Group ID",
"zh-cn": "业务安全组ID"
},
"Description": {
"en": "Search for the business security group ID that starts with sg-xxx in the console under ECS > Network & Security.",
"zh-cn": "Find the ID of your existing business security group in the console under ECS > Network & Security > Security Groups.
<font color='red'>The security group must belong to the selected VPC.</font>"
},
"AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
"AssociationPropertyMetadata": {
"VpcId": "${VPC}"
}
},
"EIPBandwidth": {
"Type": "Number",
"Label": {
"en": "EIP Bandwidth",
"zh-cn": "弹性公网带宽"
},
"Description": {
"en": "EIP bandwidth. Valid values: 1 to 200. Unit: Mbps.",
"zh-cn": "Elastic IP address bandwidth. Valid values: 1 to 200. Unit: Mbps."
},
"Default": 1,
"MinValue": 1,
"MaxValue": 200
},
"EIPInternetChargeType": {
"Type": "String",
"Label": {
"en": "EIP Charge Type",
"zh-cn": "弹性公网地址的收费类型"
},
"AssociationPropertyMetadata": {
"LocaleKey": "InternetChargeType"
},
"Default": "PayByTraffic",
"AllowedValues": [
"PayByBandwidth",
"PayByTraffic"
]
},
"Count": {
"Type": "Number",
"Label": {
"en": "Count",
"zh-cn": "数量"
},
"Description": {
"en": "Number of ECS instances and EIPs to create. Valid values: 1 to 140.",
"zh-cn": "Number of ECS instances and EIPs to create. Valid values: 1 to 140."
},
"Default": 2,
"MinValue": 1,
"MaxValue": 140
},
"ECSZoneId": {
"Type": "String",
"Label": {
"en": "VSwitch Availability Zone",
"zh-cn": "交换机可用区"
},
"Description": {
"en": "Availability zone ID. <br><b>Note: <font color='blue'>Before you select an availability zone, confirm that it supports the instance type you plan to use. We recommend choosing a different availability zone than other VSwitches.</font><br/><font color='red'>The availability zone of the VSwitch and the selected VSwitch ID must match.</font>",
"zh-cn": "Availability zone ID. <br><b>Note: <font color='blue'>Before you select an availability zone, confirm that it supports the instance type you plan to use. We recommend choosing a different availability zone than other VSwitches.</font><br/><font color='red'>The availability zone of the VSwitch and the selected VSwitch ID must match.</font>"
},
"AssociationProperty": "ALIYUN::ECS::Instance:ZoneId"
},
"ECSImageId": {
"Type": "String",
"Label": {
"en": "Image",
"zh-cn": "镜像"
},
"Description": {
"en": "Image ID. Use CentOS 7. For details, see <b><a href='https://www.alibabacloud.com/help/en/doc-detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>.",
"zh-cn": "Image ID. Use CentOS 7. For details, see <b><a href='https://www.alibabacloud.com/help/document_detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>"
},
"AssociationProperty": "ALIYUN::ECS::Image::ImageId",
"AssociationPropertyMetadata": {
"InstanceType": "${ECSInstanceType}",
"SupportedImageOwnerAlias": [
"system",
"self",
"others"
]
},
"Default": "centos_7_04_64_20G_alibase_201701015.vhd"
},
"ECSInstanceType": {
"Type": "String",
"Label": {
"en": "Instance Type",
"zh-cn": "实例规格"
},
"Description": {
"en": "<font color='blue'>1. Before selecting an instance type, confirm that it is available in the selected availability zone. Some instance types require advance notice.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbps internal bandwidth, 30 million PPS</font>]<br/>[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbps internal bandwidth, 50 million PPS</font>]<br/>[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbps internal bandwidth, 80 million PPS</font>]",
"zh-cn": "<font color='blue'><b>1. Before selecting an instance type, confirm that it is available in the selected availability zone. Some instance types require advance notice.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbps internal bandwidth, 300,000 PPS</font>]<br/>[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbps internal bandwidth, 500,000 PPS</font>]<br/>[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbps internal bandwidth, 800,000 PPS</font>]"
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"ZoneId": "ECSZoneId"
}
},
"ECSDiskCategory": {
"Type": "String",
"Label": {
"en": "System Disk Type",
"zh-cn": "系统盘类型"
},
"Description": {
"en": "<font color='blue'><b>Valid values:</font><br/>[cloud_efficiency: <font color='green'>Ultra disk</font>]<br>[cloud_ssd: <font color='green'>Standard SSD</font>]<br>[cloud_essd: <font color='green'>Enterprise SSD</font>]<br>[cloud: <font color='green'>Basic disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD disk</font>]",
"zh-cn": "<font color='blue'><b>Valid values:</font><br>[cloud_efficiency: <font color='green'>Ultra disk</font>]<br>[cloud_ssd: <font color='green'>Standard SSD</font>]<br>[cloud_essd: <font color='green'>Enterprise SSD</font>]<br>[cloud: <font color='green'>Basic disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD disk</font>]"
},
"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
"AssociationPropertyMetadata": {
"LocaleKey": "DiskCategory",
"InstanceType": "${ECSInstanceType}"
}
},
"ECSSysDiskSize": {
"Type": "Number",
"Label": {
"en": "System Disk Space",
"zh-cn": "系统盘空间"
},
"Description": {
"en": "System disk size. Valid values: 40 to 500. Unit: GB.",
"zh-cn": "System disk size. Valid values: 40 to 500. Unit: GB."
},
"Default": 40,
"MinValue": 40,
"MaxValue": 500
},
"ECSPassword": {
"Type": "String",
"NoEcho": true,
"Label": {
"en": "Instance Password",
"zh-cn": "实例密码"
},
"Description": {
"en": "Server logon password. Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, numbers, and special characters such as ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.",
"zh-cn": "Server logon password. Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, numbers, and special characters such as ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/."
},
"ConstraintDescription": {
"en": "Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, numbers, and special characters such as ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.",
"zh-cn": "Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, numbers, and special characters such as ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/."
},
"Default": null,
"AssociationProperty": "ALIYUN::ECS::Instance::Password"
},
"KeyPairName": {
"Type": "String",
"Label": {
"en": "Key Pair Name",
"zh-cn": "密钥对名称"
},
"Description": {
"en": "Ignore this parameter if you are creating a Windows ECS instance. The default value is empty.<br>If you specify a <font color='green'>key pair name</font>, the <font color='green'>instance password</font> is still set on the instance, but password-based logon is disabled for Linux instances.<br><font color='red'>Enter the name of an existing key pair. If you use the instance password to log on, leave this field blank.</font>",
"zh-cn": "Ignore this parameter if you are creating a Windows ECS instance. The default value is empty.<br>If you specify a <font color='green'>key pair name</font>, the <font color='green'>instance password</font> is still set on the instance, but password-based logon is disabled for Linux instances.<br><font color='red'>Enter the name of an existing key pair. If you use the instance password to log on, leave this field blank.</font>"
},
"AssociationProperty": "ALIYUN::ECS::KeyPair::KeyPairName",
"Default": null
},
"PayType": {
"Type": "String",
"Label": {
"en": "ECS Instance Charge Type",
"zh-cn": "ECS付费类型"
},
"AssociationProperty": "ChargeType",
"AssociationPropertyMetadata": {
"LocaleKey": "InstanceChargeType"
},
"Default": "PostPaid",
"AllowedValues": [
"PostPaid",
"PrePaid"
]
},
"PayPeriodUnit": {
"Type": "String",
"Label": {
"en": "Pay Period Unit",
"zh-cn": "购买资源时长周期"
},
"AssociationProperty": "PayPeriodUnit",
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${PayType}",
"PostPaid"
]
}
}
}
},
"Default": "Month",
"AllowedValues": [
"Month",
"Year"
]
},
"PayPeriod": {
"Type": "Number",
"Label": {
"en": "Period",
"zh-cn": "购买资源时长"
},
"AssociationProperty": "PayPeriod",
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${PayType}",
"PostPaid"
]
}
}
}
},
"Default": 1,
"AllowedValues": [
1,
2,
3,
4,
5,
6,
7,
8,
9
]
}
},
"Resources": {
"ECSInstanceGroup": {
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"ZoneId": {
"Ref": "ECSZoneId"
},
"VpcId": {
"Ref": "VPC"
},
"VSwitchId": {
"Ref": "VSwitch"
},
"SecurityGroupId": {
"Ref": "SecurityGroup"
},
"ImageId": {
"Ref": "ECSImageId"
},
"AllocatePublicIP": "false",
"InstanceChargeType": {
"Ref": "PayType"
},
"Period": {
"Ref": "PayPeriod"
},
"PeriodUnit": {
"Ref": "PayPeriodUnit"
},
"InstanceType": {
"Ref": "ECSInstanceType"
},
"IoOptimized": "optimized",
"KeyPairName": {
"Ref": "KeyPairName"
},
"MaxAmount": {
"Ref": "Count"
},
"Password": {
"Ref": "ECSPassword"
},
"SystemDiskCategory": {
"Ref": "ECSDiskCategory"
},
"SystemDiskSize": {
"Ref": "ECSSysDiskSize"
}
}
},
"ElasticIp": {
"Type": "ALIYUN::VPC::EIP",
"Properties": {
"Bandwidth": {
"Ref": "EIPBandwidth"
},
"InternetChargeType": {
"Ref": "EIPInternetChargeType"
}
},
"Count": {
"Ref": "Count"
}
},
"ElasticIpAssociation": {
"Type": "ALIYUN::VPC::EIPAssociation",
"Properties": {
"InstanceId": {
"Fn::Select": [
{
"Ref": "ALIYUN::Index"
},
{
"Fn::GetAtt": [
"ECSInstanceGroup",
"InstanceIds"
]
}
]
},
"AllocationId": {
"Fn::Select": [
{
"Ref": "ALIYUN::Index"
},
{
"Ref": "ElasticIp"
}
]
}
},
"Count": {
"Ref": "Count"
}
}
},
"Outputs": {
"EipAddress": {
"Description": "IP address of created EIP.",
"Value": {
"Fn::GetAtt": [
"ElasticIp",
"EipAddress"
]
}
},
"SecurityGroupId": {
"Description": "generated security group id for security group.",
"Value": {
"Ref": "SecurityGroup"
}
},
"VSwitchId": {
"Description": "generated security vswitch id for VPC.",
"Value": {
"Ref": "VSwitch"
}
},
"VpcId": {
"Description": "generated security vpc id for VPC.",
"Value": {
"Ref": "VPC"
}
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"VPC",
"ECSZoneId",
"VSwitch",
"SecurityGroup"
],
"Label": {
"default": "VPC "
}
},
{
"Parameters": [
"EIPBandwidth",
"EIPInternetChargeType"
],
"Label": {
"default": "EIP"
}
},
{
"Parameters": [
"PayType",
"PayPeriodUnit",
"PayPeriod"
],
"Label": {
"default": {
"en": "ECS PayType Configuration",
"zh-cn": "ECS付费类型配置"
}
}
},
{
"Parameters": [
"ECSInstanceType",
"ECSImageId",
"ECSDiskCategory",
"ECSSysDiskSize",
"Count",
"ECSPassword",
"KeyPairName"
],
"Label": {
"default": "ECS"
}
}
]
}
}
}Scenario 3: Attach multiple EIPs to a single ECS instance
ROSTemplateFormatVersion: '2015-09-01'
Description:
en: Provision a specified number of ECS instances within a designated VPC, equipped with EIPs, billed by configuration and bandwidth usage, and placed in the specified vSwitch and security group.
Parameters:
VPC:
Type: String
Label:
en: VPC ID
Description:
en: The ID of your VPC. Find the ID that starts with vpc- in the Virtual Private Cloud console.
AssociationProperty: ALIYUN::ECS::VPC::VPCId
VSwitch:
Type: String
Label:
en: VSwitch ID
Description:
en: The ID of an existing vSwitch. Find the ID in the console under VPC > vSwitches. <font color='red'>The vSwitch must be in the selected VPC. The ECS instance will be created in this vSwitch.</font>
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
AssociationPropertyMetadata:
VpcId: ${VPC}
ZoneId: ${ECSZoneId}
SecurityGroup:
Type: String
Label:
en: Business Security Group ID
Description:
en: The ID of an existing security group. Find the ID that starts with sg- in the console under ECS > Network & Security > Security Groups.
<font color='red'>The security group must be in the selected VPC.</font>
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
AssociationPropertyMetadata:
VpcId: ${VPC}
EIPBandwidth:
Type: Number
Label:
en: EIP Bandwidth
Description:
en: 'The bandwidth of the EIP. The value can be from 1 to 200. The unit is Mbps.'
Default: 1
MinValue: 1
MaxValue: 200
EIPInternetChargeType:
Type: String
Label:
en: EIP Charge Type
AssociationPropertyMetadata:
LocaleKey: InternetChargeType
Default: PayByTraffic
AllowedValues:
- PayByBandwidth
- PayByTraffic
Count:
Type: Number
Label:
en: Count
Description:
en: 'The number of ECS instances and EIPs to create. The value can be from 1 to 140.'
Default: 2
MinValue: 1
MaxValue: 140
ECSZoneId:
Type: String
Label:
en: VSwitch Availability Zone
Description:
en: 'The ID of the zone.<br><b>Note: <font color=''blue''>Before you select a zone, confirm that it supports the instance type for the ECS resources you want to create. We recommend you select a different zone from other vSwitches.</font></b ><br><font color=''red''>The zone and the selected vSwitch must be the same.</font>'
AssociationProperty: ALIYUN::ECS::Instance:ZoneId
ECSImageId:
Type: String
Label:
en: Image
Description:
en: The ID of the image. Use a CentOS 7 image. For more information, see <b><a href='https://www.alibabacloud.com/help/en/doc-detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>
AssociationProperty: ALIYUN::ECS::Image::ImageId
AssociationPropertyMetadata:
InstanceType: ${ECSInstanceType}
SupportedImageOwnerAlias:
- system
- self
- others
Default: centos_7_04_64_20G_alibase_201701015.vhd
ECSInstanceType:
Type: String
Label:
en: Instance Type
Description:
en: <font color='blue'>1. Before you select an instance type, confirm that it is in stock in the current zone. Some instance types require you to apply for them in advance.</font>
<font color='blue'><b>2. Available instance types:</font><br></font>[ecs.c5.large <font color='green'>2 vCPU, 4 GiB, 1 Gbps internal bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPU, 8 GiB, 1.5 Gbps internal bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPU, 16 GiB, 2.5 Gbps internal bandwidth, 800,000 PPS</font>]
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ECSZoneId
ECSDiskCategory:
Type: String
Label:
en: System Disk Type
Description:
en: '<font color=''blue''>Available values:</font><br>[cloud_efficiency: <font color=''green''>Ultra disk</font>]<br>[cloud_ssd: <font color=''green''>Standard SSD</font>]<br>[cloud_essd: <font color=''green''>ESSD</font>]<br>[cloud: <font color=''green''>Basic disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD</font>]'
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
LocaleKey: DiskCategory
InstanceType: ${ECSInstanceType}
ECSSysDiskSize:
Type: Number
Label:
en: System Disk Space
Description:
en: 'The size of the system disk. The value can be from 40 to 500. The unit is GB.'
Default: 40
MinValue: 40
MaxValue: 500
ECSPassword:
Type: String
NoEcho: true
Label:
en: Instance Password
Description:
en: The logon password for the server. The password must be 8 to 30 characters long and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters from the following set: ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.
ConstraintDescription:
en: The password must be 8 to 30 characters long and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters from the following set: ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.
Default: Null
AssociationProperty: ALIYUN::ECS::Instance::Password
KeyPairName:
Type: String
Label:
en: Key Pair Name
Description:
en: This parameter is ignored for Windows ECS instances. The default value is empty.<br>If you specify a <font color='green'>key pair name</font>, the <font color='green'>instance password</font> is still set for the instance, but password-based logon is disabled for the Linux system.<br><font color='red'>Enter the name of an existing key pair. If you use the instance password to log on, do not specify a key pair name.</font>
AssociationProperty: ALIYUN::ECS::KeyPair::KeyPairName
Default: Null
PayType:
Type: String
Label:
en: ECS Instance Charge Type
AssociationProperty: ChargeType
AssociationPropertyMetadata:
LocaleKey: InstanceChargeType
Default: PostPaid
AllowedValues:
- PostPaid
- PrePaid
PayPeriodUnit:
Type: String
Label:
en: Pay Period Unit
AssociationProperty: PayPeriodUnit
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
Default: Month
AllowedValues:
- Month
- Year
PayPeriod:
Type: Number
Label:
en: Period
AssociationProperty: PayPeriod
AssociationPropertyMetadata:
Visible:
Condition:
Fn::Not:
Fn::Equals:
- ${PayType}
- PostPaid
Default: 1
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Resources:
ECSInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
ZoneId:
Ref: ECSZoneId
VpcId:
Ref: VPC
VSwitchId:
Ref: VSwitch
SecurityGroupId:
Ref: SecurityGroup
ImageId:
Ref: ECSImageId
AllocatePublicIP: 'false'
InstanceChargeType:
Ref: PayType
Period:
Ref: PayPeriod
PeriodUnit:
Ref: PayPeriodUnit
InstanceType:
Ref: ECSInstanceType
IoOptimized: optimized
KeyPairName:
Ref: KeyPairName
MaxAmount:
Ref: Count
Password:
Ref: ECSPassword
SystemDiskCategory:
Ref: ECSDiskCategory
SystemDiskSize:
Ref: ECSSysDiskSize
ElasticIp:
Type: ALIYUN::VPC::EIP
Properties:
Bandwidth:
Ref: EIPBandwidth
InternetChargeType:
Ref: EIPInternetChargeType
Count:
Ref: Count
ElasticIpAssociation:
Type: ALIYUN::VPC::EIPAssociation
Properties:
InstanceId:
Fn::Select:
- Ref: ALIYUN::Index
- Fn::GetAtt:
- ECSInstanceGroup
- InstanceIds
AllocationId:
Fn::Select:
- Ref: ALIYUN::Index
- Ref: ElasticIp
Count:
Ref: Count
Outputs:
EipAddress:
Description: IP address of created EIP.
Value:
Fn::GetAtt:
- ElasticIp
- EipAddress
SecurityGroupId:
Description: generated security group id for security group.
Value:
Ref: SecurityGroup
VSwitchId:
Description: generated security vswitch id for VPC.
Value:
Ref: VSwitch
VpcId:
Description: generated security vpc id for VPC.
Value:
Ref: VPC
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- VPC
- ECSZoneId
- VSwitch
- SecurityGroup
Label:
default: 'VPC '
- Parameters:
- EIPBandwidth
- EIPInternetChargeType
Label:
default: EIP
- Parameters:
- PayType
- PayPeriodUnit
- PayPeriod
Label:
default:
en: ECS billing configuration
- Parameters:
- ECSInstanceType
- ECSImageId
- ECSDiskCategory
- ECSSysDiskSize
- Count
- ECSPassword
- KeyPairName
Label:
default: ECS
{
"ROSTemplateFormatVersion": "2015-09-01",
"Locals": {
"DS_Eip1": {
"Type": "DATASOURCE::EIP::Address",
"Properties": {
"AllocationId": {
"Ref": "EipId1"
}
}
},
"HasEip1": {
"Type": "Eval",
"Value": {
"Fn::Not": {
"Fn::Equals": [
{
"Fn::Length": {
"Ref": "DS_Eip1"
}
},
0
]
}
}
},
"DS_Eip2": {
"Type": "DATASOURCE::EIP::Address",
"Properties": {
"AllocationId": {
"Ref": "EipId2"
}
}
},
"HasEip2": {
"Type": "Eval",
"Value": {
"Fn::Not": {
"Fn::Equals": [
{
"Fn::Length": {
"Ref": "DS_Eip2"
}
},
0
]
}
}
},
"DS_Eip3": {
"Type": "DATASOURCE::EIP::Address",
"Properties": {
"AllocationId": {
"Ref": "EipId3"
}
}
},
"HasEip3": {
"Type": "Eval",
"Value": {
"Fn::Not": {
"Fn::Equals": [
{
"Fn::Length": {
"Ref": "DS_Eip3"
}
},
0
]
}
}
}
},
"Parameters": {
"EcsCondition": {
"Type": "String",
"Label": {
"en": "Create an ECS instance, EIP, and ENI"
},
"AllowedValues": [
"Use existing ECS instance, EIP, and ENI",
"Create new ECS instance, EIP, and ENI"
],
"Default": "Use existing ECS instance, EIP, and ENI"
},
"EcsInstanceId": {
"Type": "String",
"Default": null,
"Label": {
"en": "ECS Instance ID"
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceId",
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Create new ECS instance, EIP, and ENI"
]
}
}
}
}
},
"ECSNetworkInterfaceId": {
"Type": "String",
"Default": null,
"Label": {
"en": "ECS Network Interface ID"
},
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Create new ECS instance, EIP, and ENI"
]
}
}
}
}
},
"EipId1": {
"Type": "String",
"Default": null,
"AssociationProperty": "ALIYUN::VPC::EIP::AllocationId",
"Label": {
"en": "EIP 1 Instance ID"
},
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Create new ECS instance, EIP, and ENI"
]
}
}
}
}
},
"EipId2": {
"Type": "String",
"Default": null,
"AssociationProperty": "ALIYUN::VPC::EIP::AllocationId",
"Label": {
"en": "EIP 2 Instance ID"
},
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Create new ECS instance, EIP, and ENI"
]
}
}
}
}
},
"EipId3": {
"Type": "String",
"Default": null,
"AssociationProperty": "ALIYUN::VPC::EIP::AllocationId",
"Label": {
"en": "EIP 3 Instance ID"
},
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Create new ECS instance, EIP, and ENI"
]
}
}
}
}
},
"SystemDiskCategory": {
"Default": null,
"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
"AssociationPropertyMetadata": {
"InstanceType": "${InstanceType}",
"ZoneId": "${ZoneId}",
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Use existing ECS instance, EIP, and ENI"
]
}
}
}
},
"Type": "String",
"Description": {
"en": "<font color='blue'>Available values:</font>
[cloud_efficiency: <font color='green'>Ultra disk</font>]<br>[cloud_ssd: <font color='green'>Standard SSD</font>]<br>[cloud_essd: <font color='green'>ESSD</font>]<br>[cloud: <font color='green'>Basic disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD</font>]"
},
"Label": {
"en": "System Disk Category"
}
},
"InstancePassword": {
"ConstraintDescription": {
"en": "The password must be 8 to 30 characters long and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include the following: ()`~!@#$%^&*_-+=|{}[]:;' <>,.?/"
},
"Description": {
"en": "The logon password for the instance. The password must be 8 to 30 characters long and contain at least three of the following character types: uppercase letters, lowercase letters, and digits. <br> Special characters include the following: ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/"
},
"MinLength": "8",
"Label": {
"en": "Instance Password"
},
"AllowedPattern": "[0-9A-Za-z\\_\\-&:;'<>,=%`~!@#\\(\\)\\$\\^\\*\\+\\|\\{\\}\\[\\]\\.\\?\\/]+$",
"NoEcho": true,
"Default": null,
"MaxLength": "30",
"Type": "String",
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Use existing ECS instance, EIP, and ENI"
]
}
}
}
}
},
"InstanceType": {
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"ZoneId": "${ZoneId}",
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Use existing ECS instance, EIP, and ENI"
]
}
}
}
},
"Type": "String",
"Default": null,
"Label": {
"en": "Instance Type"
}
},
"ZoneId": {
"Default": null,
"AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
"Type": "String",
"Description": {
"en": "The ID of the zone.<br><b>Note: <font color='blue'>Before you select a zone, confirm that it supports the instance type for the ECS resources you want to create.</font>"
},
"Label": {
"en": "Zone ID"
},
"AssociationPropertyMetadata": {
"Visible": {
"Condition": {
"Fn::Not": {
"Fn::Equals": [
"${EcsCondition}",
"Use existing ECS instance, EIP, and ENI"
]
}
}
}
}
}
},
"Resources": {
"DS_Instances": {
"Condition": "HasEcs",
"Type": "DATASOURCE::ECS::Instances",
"Properties": {
"InstanceIds": [
{
"Ref": "EcsInstanceId"
}
]
}
},
"DS_NetworkInterfaces": {
"Condition": "HasEcs",
"Type": "DATASOURCE::ECS::NetworkInterfaces",
"Properties": {
"NetworkInterfaceIds": [
{
"Ref": "ECSNetworkInterfaceId"
}
]
}
},
"AssignPrivateIpAddresses": {
"Type": "ALIYUN::ECS::AssignPrivateIpAddresses",
"Properties": {
"NetworkInterfaceId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"EcsENI",
"NetworkInterfaceId"
]
},
{
"Ref": "ECSNetworkInterfaceId"
}
]
},
"SecondaryPrivateIpAddressCount": 2
}
},
"EipAssociationPrimaryPrivateIp": {
"DependsOn": [
"AssignPrivateIpAddresses"
],
"Type": "ALIYUN::VPC::EIPAssociation",
"Condition": "EipAssociation1",
"Properties": {
"InstanceId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"EcsENI",
"NetworkInterfaceId"
]
},
{
"Ref": "ECSNetworkInterfaceId"
}
]
},
"AllocationId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"Eip1",
"AllocationId"
]
},
{
"Ref": "EipId1"
}
]
},
"PrivateIpAddress": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"EcsENI",
"PrivateIpAddress"
]
},
{
"Fn::Jq": [
"First",
".[0].PrivateIpAddress",
{
"Fn::GetAtt": [
"DS_NetworkInterfaces",
"NetworkInterfaces"
]
}
]
}
]
},
"Mode": "NAT"
}
},
"EipAssociationSecondaryPrivateIp1": {
"Type": "ALIYUN::VPC::EIPAssociation",
"Condition": "EipAssociation2",
"DependsOn": [
"EipAssociationPrimaryPrivateIp"
],
"Properties": {
"InstanceId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"EcsENI",
"NetworkInterfaceId"
]
},
{
"Ref": "ECSNetworkInterfaceId"
}
]
},
"AllocationId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"Eip2",
"AllocationId"
]
},
{
"Ref": "EipId2"
}
]
},
"PrivateIpAddress": {
"Fn::Select": [
"0",
{
"Fn::GetAtt": [
"AssignPrivateIpAddresses",
"PrivateIpAddresses"
]
}
]
},
"Mode": "NAT"
}
},
"EipAssociationSecondaryPrivateIp2": {
"DependsOn": [
"EipAssociationSecondaryPrivateIp1"
],
"Condition": "EipAssociation3",
"Type": "ALIYUN::VPC::EIPAssociation",
"Properties": {
"InstanceId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"EcsENI",
"NetworkInterfaceId"
]
},
{
"Ref": "ECSNetworkInterfaceId"
}
]
},
"AllocationId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"Eip3",
"AllocationId"
]
},
{
"Ref": "EipId3"
}
]
},
"PrivateIpAddress": {
"Fn::Select": [
"1",
{
"Fn::GetAtt": [
"AssignPrivateIpAddresses",
"PrivateIpAddresses"
]
}
]
},
"Mode": "NAT"
}
},
"EcsEniAttachment": {
"DependsOn": [
"EipAssociationPrimaryPrivateIp",
"EipAssociationSecondaryPrivateIp1",
"EipAssociationSecondaryPrivateIp2"
],
"Type": "ALIYUN::ECS::NetworkInterfaceAttachment",
"Properties": {
"InstanceId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"EcsInstance",
"InstanceId"
]
},
{
"Ref": "EcsInstanceId"
}
]
},
"NetworkInterfaceId": {
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"EcsENI",
"NetworkInterfaceId"
]
},
{
"Ref": "ECSNetworkInterfaceId"
}
]
}
}
},
"WaitConditionHandle": {
"Type": "ALIYUN::ROS::WaitConditionHandle",
"Properties": {}
},
"WaitCondition": {
"Type": "ALIYUN::ROS::WaitCondition",
"Properties": {
"Handle": {
"Ref": "WaitConditionHandle"
},
"Timeout": 3720,
"Count": 1
}
},
"InitEcsEni": {
"Type": "ALIYUN::ECS::RunCommand",
"Properties": {
"InstanceIds": [
{
"Fn::If": [
"CreateEcs",
{
"Fn::GetAtt": [
"EcsInstance",
"InstanceId"
]
},
{
"Ref": "EcsInstanceId"
}
]
}
],
"Type": "RunShellScript",
"Sync": true,
"Timeout": 3600,
"CommandContent": {
"Fn::Sub": [
"#!/bin/bash\nif [ ! -f .ros.provision ]; then\n echo \"Name: Attach multiple EIPs to an ECS instance in NAT mode (CentOS 7)\" > .ros.provision\nfi\nname=$(grep \"^Name:\" .ros.provision | awk -F':' '{print $2}' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')\nif [[ \"$name\" != \"Attach multiple EIPs to an ECS instance in NAT mode (CentOS 7)\" ]]; then\n echo \"This instance was already configured using the one-click settings from the \\\"$name\\\" tutorial. You cannot apply the one-click settings from this tutorial again.\"\n ${WaitConditionHandle.CurlCli} --data-binary \"{\\\"status\\\": \\\"FAILURE\\\", \\\"reason\\\": \\\"This instance was already configured using the \\\\\\\"$name\\\\\\\" tutorial. The configuration from this tutorial cannot be applied again.\\\"}\"\n exit 0\nfi\nsecondary_eni=`ip address show | grep eth | grep DOWN | awk -F: '{print $2}'`\nsecondary_eni_name=`eval echo \"$secondary_eni\"`\nif [[ \"$secondary_eni_name\" != \"\" ]]; then\n echo \"#########################\"\n echo \"# The secondary ENI is not fully configured\"\n echo \"#########################\"\n secondary_eni_mac=`cat /sys/class/net/\"$secondary_eni_name\"/address`\n echo \"DEVICE=$secondary_eni_name\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"BOOTPROTO=dhcp\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"ONBOOT=yes\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"TYPE=Ethernet\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"USERCTL=yes\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"PEERDNS=no\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"IPV6INIT=no\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"PERSISTENT_DHCLIENT=yes\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"HWADDR=$secondary_eni_mac\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n echo \"DEFROUTE=no\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\"\n systemctl restart network\nelse\n echo \"#########################\"\n echo \"# Secondary ENI has been configured\"\n echo \"#########################\"\nfi\nnetmask_address=`ifconfig \"$secondary_eni_name\"| grep netmask | awk '{print $4}'`\necho \"DEVICE=$secondary_eni_name:0\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":0\necho \"TYPE=Ethernet\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":0\necho \"BOOTPROTO=static\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":0\necho \"ONBOOT=yes\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":0\necho \"IPADDR=${PrivateIpAddresses1}\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":0\necho \"NETMASK=$netmask_address\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":0\necho \"DEVICE=$secondary_eni_name:1\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":1\necho \"TYPE=Ethernet\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":1\necho \"BOOTPROTO=static\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":1\necho \"ONBOOT=yes\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":1\necho \"IPADDR=${PrivateIpAddresses2}\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":1\necho \"NETMASK=$netmask_address\" >> /etc/sysconfig/network-scripts/ifcfg-\"$secondary_eni_name\":1\nsystemctl restart network\necho \"# Secondary ENI PrivateIpAddresses has been configured\"\n${WaitConditionHandle.CurlCli} --data-binary '{\"status\": \"SUCCESS\"}'\n",
{
"PrivateIpAddresses1": {
"Fn::Select": [
"0",
{
"Fn::GetAtt": [
"AssignPrivateIpAddresses",
"PrivateIpAddresses"
]
}
]
},
"PrivateIpAddresses2": {
"Fn::Select": [
"1",
{
"Fn::GetAtt": [
"AssignPrivateIpAddresses",
"PrivateIpAddresses"
]
}
]
}
}
]
}
},
"DependsOn": [
"EcsEniAttachment"
]
},
"EcsVpc": {
"Condition": "CreateEcs",
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"CidrBlock": "192.168.0.0/16"
}
},
"EcsVSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Condition": "CreateEcs",
"Properties": {
"VpcId": {
"Ref": "EcsVpc"
},
"CidrBlock": "192.168.1.0/24",
"ZoneId": {
"Ref": "ZoneId"
}
}
},
"EcsSecurityGroup": {
"Condition": "CreateEcs",
"Type": "ALIYUN::ECS::SecurityGroup",
"Properties": {
"VpcId": {
"Ref": "EcsVpc"
}
}
},
"EcsInstance": {
"Condition": "CreateEcs",
"Type": "ALIYUN::ECS::Instance",
"Properties": {
"SystemDiskCategory": {
"Ref": "SystemDiskCategory"
},
"VpcId": {
"Fn::GetAtt": [
"EcsVpc",
"VpcId"
]
},
"AllocatePublicIP": false,
"SecurityGroupId": {
"Ref": "EcsSecurityGroup"
},
"ImageId": "centos_7",
"VSwitchId": {
"Ref": "EcsVSwitch"
},
"Password": {
"Ref": "InstancePassword"
},
"InstanceType": {
"Ref": "InstanceType"
}
}
},
"EcsENI": {
"Condition": "CreateEcs",
"Type": "ALIYUN::ECS::NetworkInterface",
"Properties": {
"VSwitchId": {
"Ref": "EcsVSwitch"
},
"SecurityGroupId": {
"Ref": "EcsSecurityGroup"
}
}
},
"Eip1": {
"Condition": "CreateEcs",
"Type": "ALIYUN::VPC::EIP",
"Properties": {
"InstanceChargeType": "Postpaid",
"InternetChargeType": "PayByTraffic"
}
},
"Eip2": {
"Condition": "CreateEcs",
"Type": "ALIYUN::VPC::EIP",
"Properties": {
"InstanceChargeType": "Postpaid",
"InternetChargeType": "PayByTraffic"
}
},
"Eip3": {
"Condition": "CreateEcs",
"Type": "ALIYUN::VPC::EIP",
"Properties": {
"InstanceChargeType": "Postpaid",
"InternetChargeType": "PayByTraffic"
}
}
},
"Outputs": {},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"EcsCondition",
"EcsInstanceId",
"ZoneId",
"InstanceType",
"SystemDiskCategory",
"InstancePassword",
"ECSNetworkInterfaceId",
"EipId1",
"EipId2",
"EipId3"
]
}
]
}
},
"Conditions": {
"CreateEcs": {
"Fn::Equals": [
"Create new ECS instance, EIP, and ENI",
{
"Ref": "EcsCondition"
}
]
},
"HasEcs": {
"Fn::Equals": [
"Use existing ECS instance, EIP, and ENI",
{
"Ref": "EcsCondition"
}
]
},
"HasEip1": {
"Ref": "HasEip1"
},
"HasEip2": {
"Ref": "HasEip2"
},
"HasEip3": {
"Ref": "HasEip3"
},
"EipAssociation1": {
"Fn::Or": [
"CreateEcs",
"HasEip1"
]
},
"EipAssociation2": {
"Fn::Or": [
"CreateEcs",
"HasEip2"
]
},
"EipAssociation3": {
"Fn::Or": [
"CreateEcs",
"HasEip3"
]
}
},
"Description": {
"en": "Attach multiple EIPs to a CentOS 7 ECS instance using a secondary ENI."
}
}For more examples, see public templates that include this resource.