All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::ALB::LoadBalancer

Last Updated:Dec 07, 2023

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
  }
}

Properties

Property

Type

Required

Editable

Description

Constraint

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 as the value of this property.

BandwidthPackageId

String

No

Yes

The ID of the EIP bandwidth plan.

This property takes effect only if you set the AddressType property to Internet.

LoadBalancerEdition

String

Yes

No

The edition of the ALB instance.

Valid values:

  • Basic

  • Standard

VpcId

String

Yes

No

The ID of the virtual private cloud (VPC) in which you want to create the ALB instance.

None.

ResourceGroupId

String

No

Yes

The ID of the resource group.

None.

LoadBalancerBillingConfig

Map

Yes

No

The billing method.

For more information, see LoadBalancerBillingConfig property.

AddressType

String

Yes

No

The type of the IP address that the ALB instance uses to provide services.

Valid values:

  • Internet: The ALB instance uses a public IP address.

    The domain name of the ALB instance is resolved to a public IP address. Therefore, the ALB instance can be accessed over the Internet.

  • Intranet: The ALB instance uses a private IP address.

    The domain name of the ALB instance is resolved to a private IP address. Therefore, the ALB instance can be accessed over the VPC in which the ALB instance is deployed.

AddressAllocatedMode

String

No

No

The mode in which the IP address of the instance is assigned.

Valid values:

  • Fixed: A static IP address is assigned to the ALB instance.

  • Dynamic (default): An IP address is dynamically assigned to each zone of the ALB instance.

ZoneMappings

List

Yes

No

The mappings between zones and vSwitches.

You must specify at least two zones. For more information, see ZoneMappings properties.

DeletionProtectionEnabled

Boolean

No

Yes

Specifies whether to enable deletion protection.

Valid values:

  • true

  • false (default)

AddressIpVersion

String

No

No

The IP version of the ALB instance.

Valid values:

  • IPv4

  • IPv6

ModificationProtectionConfig

Map

No

Yes

The configuration read-only mode.

For more information, see ModificationProtectionConfig properties.

Tags

List

No

Yes

The tags that you want to add to the ALB instance.

You can add up to 20 tags.

For more information, see Tags properties.

AccessLogConfig

Map

No

Yes

The access log configuration.

For more information, see AccessLogConfig properties.

AccessLogConfig syntax

"AccessLogConfig": {
  "Enable": Boolean,
  "LogStore": String,
  "LogProject": String 
}

AccessLogConfig properties

Property

Type

Required

Editable

Description

Constraint

Enable

Boolean

No

Yes

Specifies whether to enable the access log feature.

Valid values:

  • true

  • false

LogStore

String

Yes

No

The Logstore.

None.

LogProject

String

Yes

No

The log project.

None.

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

ZoneId

String

Yes

No

The zone ID of the ALB instance.

None.

VSwitchId

String

Yes

No

The vSwitch ID of the ALB instance.

Each zone can contain only one vSwitch.

AllocationId

String

No

No

The ID of the EIP that is associated with the ALB instance.  

None.

LoadBalancerAddresses

List

No

No

The IP address of the 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:

  • NonProtection: disables the configuration read-only mode. In this case, you cannot specify the Reason property.

  • ConsoleProtection: enables the configuration read-only mode. In this case, you can specify the Reason property.

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 the Status property to ConsoleProtection.

Tags syntax

"Tags": [
  {
    "Value": String,
    "Key": String
  }
]

Tags properties

Property

Type

Required

Editable

Description

Constraint

Key

String

Yes

No

The key of the tag.

The tag key must be 1 to 128 characters in length and cannot contain http:// or https://. It cannot start with aliyun or acs:.

Value

String

No

No

The value of the tag.

The tag value can be up to 128 characters in length and cannot contain http:// or https://. The tag value cannot start with aliyun or acs:.

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"
            ]
          }
        }
      }
    }