ALIYUN::ALB::LoadBalancer is used to create an Application Load Balancer (ALB) instance.
Syntax
{
"Type": "ALIYUN::ALB::LoadBalancer",
"Properties": {
"BandwidthPackageId": String,
"LoadBalancerName": String,
"LoadBalancerEdition": String,
"VpcId": String,
"ResourceGroupId": String,
"LoadBalancerBillingConfig": Map,
"AddressType": String,
"AddressAllocatedMode": String,
"ZoneMappings": List,
"DeletionProtectionEnabled": Boolean,
"AddressIpVersion": String,
"ModificationProtectionConfig": Map,
"Tags": List,
"AccessLogConfig": Map,
"SecurityGroupIds": List
}
}
Properties
Property | Type | Required | Editable | Description | Constraint |
AddressType | String | Yes | No | The type of the IP address that the ALB instance uses to provide services. | Valid values:
|
LoadBalancerBillingConfig | Map | Yes | No | The billing method. | For more information, see LoadBalancerBillingConfig property. |
LoadBalancerEdition | String | Yes | No | The edition of the ALB instance. | Valid values:
|
LoadBalancerName | String | Yes | Yes | The name of the ALB instance. | The name must be 1 to 80 characters in length and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (_). If you do not specify this property, the system assigns a name to the instance. |
VpcId | String | Yes | No | The ID of the VPC in which you want to create the ALB instance. | None. |
ZoneMappings | List | Yes | No | The mappings between zones and vSwitches. | You must specify at least two zones. For more information, see ZoneMappings properties. |
AccessLogConfig | Map | No | Yes | The access log configurations. | For more information, see AccessLogConfig properties. |
AddressAllocatedMode | String | No | No | The mode in which the IP address of the instance is assigned. | Valid values:
|
AddressIpVersion | String | No | No | The IP version of the ALB instance. | Valid values:
|
BandwidthPackageId | String | No | Yes | The ID of the Internet Shared Bandwidth instance. | This property takes effect when AddressType is set to Internet. |
DeletionProtectionEnabled | Boolean | No | Yes | Specifies whether to enable deletion protection. | Valid values:
|
ModificationProtectionConfig | Map | No | Yes | The configuration read-only mode. | For more information, see ModificationProtectionConfig properties. |
ResourceGroupId | String | No | Yes | The ID of the resource group. | None. |
Tags | List | No | Yes | The tags that you want to add to the ALB instance. | You can add up to 20 tags to the ALB instance. For more information, see Tags properties. |
SecurityGroupIds | List | No | Yes | The IDs of the security groups that you want to associate with the ALB instance. | None. |
AccessLogConfig syntax
"AccessLogConfig": {
"Enable": Boolean,
"LogStore": String,
"LogProject": String
}
AccessLogConfig properties
Property | Type | Required | Editable | Description | Constraint |
LogProject | String | Yes | No | The Simple Log Service (SLS) project. | None. |
LogStore | String | Yes | No | The SLS Logstore. | None. |
Enable | Boolean | No | Yes | Specifies whether to enable the access log feature. | Valid values:
|
LoadBalancerBillingConfig syntax
"LoadBalancerBillingConfig": {
"PayType": String
}
LoadBalancerBillingConfig property
Property | Type | Required | Editable | Description | Constraint |
PayType | String | Yes | No | The billing method of the ALB instance. | Set the value to PostPay. PostPay specifies the pay-as-you-go billing method. |
ZoneMappings syntax
"ZoneMappings": [
{
"ZoneId": String,
"VSwitchId": String,
"AllocationId": String,
"LoadBalancerAddresses": List
}
]
ZoneMappings properties
Property | Type | Required | Editable | Description | Constraint |
VSwitchId | String | Yes | No | The vSwitch ID. | Each zone can contain only one vSwitch. |
ZoneId | String | Yes | No | The zone ID. | None. |
AllocationId | String | No | No | The ID of the elastic IP address (EIP) that is associated with the ALB instance. | None. |
LoadBalancerAddresses | List | No | No | The IP address of the ALB instance. | For more information, see LoadBalancerAddresses property. |
LoadBalancerAddresses syntax
"ModificationProtectionConfig": {
"AllocationId": String
}
LoadBalancerAddresses property
Property | Type | Required | Editable | Description | Constraint |
AllocationId | String | Yes | No | The ID of the EIP that is associated with the ALB instance. | None. |
ModificationProtectionConfig syntax
"ModificationProtectionConfig": {
"Status": String,
"Reason": String
}
ModificationProtectionConfig properties
Property | Type | Required | Editable | Description | Constraint |
Status | String | Yes | Yes | The status of the configuration read-only mode. | Valid values:
|
Reason | String | No | Yes | The reason why you enable the configuration read-only mode. | The reason must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The reason must start with a letter. Note This property takes effect only if you set Status to ConsoleProtection. |
Tags syntax
"Tags": [
{
"Value": String,
"Key": String
}
]
Tags properties
Property | Type | Required | Editable | Description | Constraint |
Key | String | Yes | No | The tag key. | The tag key must be 1 to 128 characters in length and cannot contain |
Value | String | No | No | The tag value. | The tag value can be up to 128 characters in length and cannot contain |
Return values
Fn::GetAtt
LoadBalancerEdition: the edition of the ALB instance.
VpcId: the ID of the VPC in which the ALB instance is created.
LoadBalancerId: the ID of the ALB instance.
AddressType: the type of the IP address that the ALB instance uses to provide services.
DNSName: the domain name of the ALB instance.
ZoneMappings: the mappings between zones and vSwitches.
Examples
YAML
format
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VpcId:
Type: String
AssociationProperty: ALIYUN::ECS::VPC::VPCId
ZoneMappings:
Type: Json
Description: The zones and the vSwitches in the zones. You must specify at least two zones.
Default:
- ZoneId: cn-hangzhou-h
VSwitchId: vsw-bp1jhj254nwc7i0ge****
- ZoneId: cn-hangzhou-i
VSwitchId: vsw-bp1llps83qqb30znp****
Resources:
LoadBalancer:
Type: ALIYUN::ALB::LoadBalancer
Properties:
LoadBalancerName: TestLoadBalancer
LoadBalancerEdition: Basic
VpcId:
Ref: VpcId
LoadBalancerBillingConfig:
PayType: PostPay
ZoneMappings:
Ref: ZoneMappings
AddressType: Internet
Outputs:
LoadBalancerEdition:
Description: The edition of the ALB instance.
Value:
Fn::GetAtt:
- LoadBalancer
- LoadBalancerEdition
VpcId:
Description: The ID of the virtual private cloud (VPC) where the ALB instance is deployed.
Value:
Fn::GetAtt:
- LoadBalancer
- VpcId
LoadBalancerId:
Description: The ID of the ALB instance.
Value:
Fn::GetAtt:
- LoadBalancer
- LoadBalancerId
AddressType:
Description: The type of IP address that the ALB instance uses to provide services.
Value:
Fn::GetAtt:
- LoadBalancer
- AddressType
DNSName:
Description: The domain name of the ALB instance.
Value:
Fn::GetAtt:
- LoadBalancer
- DNSName
ZoneMappings:
Description: The zones, vSwitches and addresses which are mapped to the zones.
Value:
Fn::GetAtt:
- LoadBalancer
- ZoneMappings
JSON
format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"VpcId": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
},
"ZoneMappings": {
"Type": "Json",
"Description": "The zones and the vSwitches in the zones. You must specify at least two zones.",
"Default": [
{
"ZoneId": "cn-hangzhou-h",
"VSwitchId": "vsw-bp1jhj254nwc7i0ge****"
},
{
"ZoneId": "cn-hangzhou-i",
"VSwitchId": "vsw-bp1llps83qqb30znp****"
}
]
}
},
"Resources": {
"LoadBalancer": {
"Type": "ALIYUN::ALB::LoadBalancer",
"Properties": {
"LoadBalancerName": "TestLoadBalancer",
"LoadBalancerEdition": "Basic",
"VpcId": {
"Ref": "VpcId"
},
"LoadBalancerBillingConfig": {
"PayType": "PostPay"
},
"ZoneMappings": {
"Ref": "ZoneMappings"
},
"AddressType": "Internet"
}
}
},
"Outputs": {
"LoadBalancerEdition": {
"Description": "The edition of the ALB instance.",
"Value": {
"Fn::GetAtt": [
"LoadBalancer",
"LoadBalancerEdition"
]
}
},
"VpcId": {
"Description": "The ID of the virtual private cloud (VPC) where the ALB instance is deployed.",
"Value": {
"Fn::GetAtt": [
"LoadBalancer",
"VpcId"
]
}
},
"LoadBalancerId": {
"Description": "The ID of the ALB instance.",
"Value": {
"Fn::GetAtt": [
"LoadBalancer",
"LoadBalancerId"
]
}
},
"AddressType": {
"Description": "The type of IP address that the ALB instance uses to provide services.",
"Value": {
"Fn::GetAtt": [
"LoadBalancer",
"AddressType"
]
}
},
"DNSName": {
"Description": "The domain name of the ALB instance.",
"Value": {
"Fn::GetAtt": [
"LoadBalancer",
"DNSName"
]
}
},
"ZoneMappings": {
"Description": "The zones, vSwitches and addresses which are mapped to the zones.",
"Value": {
"Fn::GetAtt": [
"LoadBalancer",
"ZoneMappings"
]
}
}
}
}