全部产品
Search
文档中心

资源编排:ALIYUN::ALB::LoadBalancer

更新时间:Aug 12, 2024

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:标准版。

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

ZoneMappings属性

属性名称

类型

必须

允许更新

描述

约束

VSwitchId

String

交换机ID。

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

ZoneId

String

可用区ID。

AllocationId

String

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

LoadBalancerAddresses

List

实例地址。

更多信息,请参见LoadBalancerAddresses属性

LoadBalancerAddresses语法

"ModificationProtectionConfig": {
  "AllocationId": String
}

LoadBalancerAddresses属性

属性名称

类型

必须

允许更新

描述

约束

AllocationId

String

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

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