ALIYUN::ALB::LoadBalancer

ALIYUN::ALB::LoadBalancer类型用于创建应用型负载均衡ALB实例。

语法

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

属性

属性名称

类型

必须

允许更新

描述

约束

AddressType

String

ALB实例的地址类型。

取值:

  • Internet:公网IP地址。

    DNS域名被解析到公网IP地址,因此可以在公网环境访问。

  • Intranet:私网IP地址。

    DNS域名被解析到私网IP地址,因此只能被负载均衡所在VPC的内网环境访问。

LoadBalancerBillingConfig

Map

计费配置。

更多信息,请参见LoadBalancerBillingConfig属性

LoadBalancerEdition

String

ALB实例的版本。

取值:

  • Basic:基础版。

  • Standard:标准版。

  • StandardWithWaf:WAF 增强版。

LoadBalancerName

String

ALB实例的名称。

长度为1~80个字符。可包含英文字母、数字、短划线(-)、正斜线(/)、半角句号(.)和下划线(_)。

不指定该参数时,默认由系统分配一个实例名称。

VpcId

String

专有网络ID。

ZoneMappings

List

可用区及交换机映射列表。

您必须至少指定两个可用区。更多信息,请参见ZoneMappings属性

AccessLogConfig

Map

访问日志配置。

更多信息,请参见AccessLogConfig属性

AddressAllocatedMode

String

地址模式。

取值:

  • Fixed:固定IP模式,表示使用固定的IP地址。

  • Dynamic(默认值):动态IP模式,表示每个可用区动态分配IP地址。

AddressIpVersion

String

负载均衡实例的IP版本。

取值:

  • IPv4:IPv4版本。

  • DualStack:双栈类型。

BandwidthPackageId

String

绑定的共享带宽包ID。

当AddressType取值为Internet时,该参数有效。

DeletionProtectionEnabled

Boolean

是否启用删除保护。

取值:

  • true:启用删除保护。

  • false(默认值):禁用删除保护。

ModificationProtectionConfig

Map

修改保护的配置。

更多信息,请参见ModificationProtectionConfig属性

ResourceGroupId

String

资源组ID。

Tags

List

ALB实例的标签。

最多支持添加20个标签。

更多信息,请参见Tags属性

SecurityGroupIds

List

应用型负载均衡实例需要绑定的安全组 ID 集合。

安全组功能默认不开放,如需使用,请向商务经理申请。

AccessLogConfig语法

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

AccessLogConfig属性

属性名称

类型

必须

允许更新

描述

约束

LogProject

String

日志项目。

LogStore

String

日志存储。

Enable

Boolean

是否启用访问日志配置。

取值:

  • true:启用访问日志配置。

  • false:不启用访问日志配置。

LoadBalancerBillingConfig语法

"LoadBalancerBillingConfig": {
  "PayType": String
}

LoadBalancerBillingConfig属性

属性名称

类型

必须

允许更新

描述

约束

PayType

String

ALB实例的计费方式。

取值:PostPay,表示按量付费。

ZoneMappings语法

"ZoneMappings": [
  {
    "ZoneId": String,
    "VSwitchId": String,
    "AllocationId": String,
    "LoadBalancerAddresses": List,
    "IntranetAddress": String,
    "EipType": String
  }
]

ZoneMappings属性

属性名称

类型

必须

允许更新

描述

约束

VSwitchId

String

交换机ID。

每个可用区只能包含一个交换机。

ZoneId

String

可用区ID。

AllocationId

String

与ALB实例关联的EIP (elastic IP address) ID。 

LoadBalancerAddresses

List

实例地址。

更多信息,请参见LoadBalancerAddresses属性

IntranetAddress

String

IPv4 私网地址。

EipType

String

公网 EIP 的类型。

取值:

  • Common:弹性公网 IP,简称 EIP。

  • Anycast:任播弹性公网 IP,简称 Anycast EIP。

说明

ALB 支持绑定 Anycast EIP 的地域,请参见ALB绑定Anycast EIP实现多地域业务就近接入

LoadBalancerAddresses语法

"ModificationProtectionConfig": {
  "AllocationId": String,
  "IntranetAddress": String,
  "EipType": String
}

LoadBalancerAddresses属性

属性名称

类型

必须

允许更新

描述

约束

AllocationId

String

与ALB实例关联的EIP (elastic IP address) ID。

IntranetAddress

String

IPv4 私网地址。

EipType

String

公网 EIP 的类型。

取值:

  • Common:弹性公网 IP,简称 EIP。

  • Anycast:任播弹性公网 IP,简称 Anycast EIP。

说明

ALB 支持绑定 Anycast EIP 的地域,请参见ALB绑定Anycast EIP实现多地域业务就近接入

ModificationProtectionConfig语法

"ModificationProtectionConfig": {
  "Status": String,
  "Reason": String
}

ModificationProtectionConfig属性

属性名称

类型

必须

允许更新

描述

约束

Status

String

修改保护的状态。

取值:

  • NonProtection:未启用修改保护。此时不允许指定Reason参数。

  • ConsoleProtection:已启用控制台修改保护。此时允许指定Reason参数。

Reason

String

修改保护的原因。

长度为2~128个字符,必须以英文字母或汉字开头,可包含英文字母、汉字、数字、半角句号(.)、下划线(_)和短划线(-)。

说明

当Status取值为ConsoleProtection时,该参数有效。

Tags语法

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

Tags属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

标签键。

长度为1~128个字符,不能以aliyunacs:开头,不能包含http://https://

Value

String

标签值。

长度为0~128个字符,不能以aliyunacs:开头,不能包含http://https://

返回值

Fn::GetAtt

  • LoadBalancerEdition:ALB实例的版本。

  • VpcId:专有网络ID。

  • LoadBalancerId:ALB实例ID。

  • AddressType:ALB实例的地址类型。

  • DNSName:ALB实例的域名。

  • ZoneMappings:可用区及交换机映射列表。

示例

YAML格式

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格式

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