ALIYUN::PrivateLink::VpcEndpoint类型用于创建终端节点。

语法

{
  "Type": "ALIYUN::PrivateLink::VpcEndpoint",
  "Properties": {
    "VpcId": String,
    "EndpointName": String,
    "ServiceName": String,
    "Zone": List,
    "SecurityGroupId": List,
    "EndpointDescription": String,
    "ServiceId": String,
    "ProtectedEnabled": Boolean,
    "ZonePrivateIpAddressCount": Number,
    "EndpointType": String
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
VpcId String 终端节点所属的专有网络ID。
EndpointName String 终端节点名称。 长度为2~128个字符,以英文字母或汉字开头。可包含英文字母、汉字、数字、短划线(-)和下划线(_)。
ServiceName String 终端节点关联的终端节点服务名称。
Zone List 可用区。 最多支持10个可用区。

更多信息,请参见Zone属性

SecurityGroupId List 终端节点网卡关联的安全组ID,安全组可以管控专有网络到终端节点网卡的数据通信。 最多支持关联10个安全组。
EndpointDescription String 终端节点描述。 长度为2~256个字符,不能以http://https://开头。
ServiceId String 终端节点关联的终端节点服务ID。
ProtectedEnabled Boolean 是否开启托管保护。 STS调用方式下生效。取值:
  • true:开启托管保护。只有创建终端节点的用户才能通过STS方式对该终端节点进行修改或删除等操作。
  • false(默认值):不开启托管保护。
ZonePrivateIpAddressCount Number 每个可用区ENI私网IP的数量。 取值:1。
EndpointType String 终端节点类型。 取值:Interface,表示终端节点的服务资源类型为slb(传统型负载均衡CLB)的终端节点类型。

Zone语法

"Zone": [
  {
    "ZoneId": String,
    "VSwitchId": String
  }
]

Zone属性

属性名称 类型 必须 允许更新 描述 约束
ZoneId String 终端节点服务对应的可用区ID。
VSwitchId String 在可用区内,需要创建终端节点网卡的交换机ID。

返回值

Fn::GetAtt

  • EndpointDomain:终端节点域名。
  • Bandwidth:终端节点的连接带宽。
  • EndpointId:终端节点ID。
  • EndpointName:终端节点名称。
  • VpcId:终端节点所属的专有网络ID。
  • ServiceName:终端节点关联的终端节点服务名称。
  • ServiceId:终端节点关联的终端节点服务ID。
  • ZoneDomains:可用区域名。

示例

  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "MasterZoneId": {
          "Type": "String",
          "Description": "The master zone id to create load balancer instance.",
          "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
        },
        "SlaveZoneId": {
          "Type": "String",
          "Description": "The slave zone id to create load balancer instance.",
          "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId"
        },
        "VpcId": {
          "Type": "String",
          "Description": "The VPC id to create load balancer instance. For VPC network only.",
          "AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
        },
        "VSwitchId": {
          "Type": "String",
          "Description": "The VSwitch id to create load balancer instance. For VPC network only.",
          "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
          "AssociationPropertyMetadata": {
            "VpcId": "VpcId",
            "ZoneId": "MasterZoneId"
          }
        },
        "SecurityGroupId": {
          "Type": "CommaDelimitedList",
          "Description": "The security group associated with the endpoint network interface. The security group can control the data communication from the VPC to the endpoint network interface.",
          "MinLength": 1,
          "MaxLength": 10
        },
        "LoadBalancerSpec": {
          "Type": "String",
          "Description": "The specification of the Server Load Balancer instance. Allowed value: slb.s1.small|slb.s2.small|slb.s2.medium|slb.s3.small|slb.s3.medium|slb.s3.large|slb.s3.xlarge|slb.s3.xxlarge. Default value: slb.s1.small. The supported performance specification in each region is different, two specifications are supported in the US East 1 region. If the region does not support the performance-guaranteed instances, the value will not take effect.",
          "Default": "slb.s1.small"
        },
        "LoadBalancerName": {
          "Type": "String",
          "Description": "Name of created load balancer. Length is limited to 1-80 characters, allowed to contain letters, numbers, '-, /, _,.' When not specified, a default name will be assigned.",
          "Default": "mytest"
        },
        "User": {
          "Type": "Json",
          "Description": "Account IDs to the whitelist of an endpoint service.",
          "MinLength": 1,
          "MaxLength": 20,
          "Default": null
        },
        "ServiceDescription": {
          "Type": "String",
          "Description": "The description for the endpoint service.",
          "MinLength": 2,
          "MaxLength": 256,
          "Default": "test service endpoint"
        },
        "ConnectBandwidth": {
          "Type": "Number",
          "Description": "The default maximum bandwidth of the endpoint connection. Valid values: 100 to 1024. Unit: Mbit/s.",
          "MinValue": 100,
          "MaxValue": 1024,
          "Default": 100
        },
        "AutoAcceptEnabled": {
          "Type": "Boolean",
          "Description": "Specifies whether to automatically accept endpoint connection requests. Valid values:\ntrue: automatically accepts endpoint connection requests.\nfalse: does not automatically accept endpoint connection requests.",
          "AllowedValues": [
            true,
            false
          ],
          "Default": true
        },
        "EndpointName": {
          "Type": "String",
          "Description": "The name of the endpoint.\nThe name must be 2 to 128 characters in length and can contain digits, underscores\n(_), and hyphens (-). The name must start with a letter.",
          "MinLength": 2,
          "MaxLength": 128,
          "Default": "mytest"
        }
      },
      "Resources": {
        "LoadBalancer": {
          "Type": "ALIYUN::SLB::LoadBalancer",
          "Properties": {
            "SupportPrivateLink": true,
            "PayType": "PayOnDemand",
            "VpcId": {
              "Ref": "VpcId"
            },
            "VSwitchId": {
              "Ref": "VSwitchId"
            },
            "LoadBalancerSpec": {
              "Ref": "LoadBalancerSpec"
            },
            "LoadBalancerName": {
              "Ref": "LoadBalancerName"
            },
            "AddressType": "intranet",
            "MasterZoneId": {
              "Ref": "MasterZoneId"
            },
            "SlaveZoneId": {
              "Ref": "SlaveZoneId"
            }
          }
        },
        "VpcEndpointService": {
          "DependsOn": "LoadBalancer",
          "Type": "ALIYUN::PrivateLink::VpcEndpointService",
          "Properties": {
            "User": {
              "Ref": "User"
            },
            "ServiceDescription": {
              "Ref": "ServiceDescription"
            },
            "Resource": [
              {
                "ZoneId": {
                  "Ref": "MasterZoneId"
                },
                "ResourceId": {
                  "Ref": "LoadBalancer"
                },
                "ResourceType": "slb"
              }
            ],
            "ConnectBandwidth": {
              "Ref": "ConnectBandwidth"
            },
            "AutoAcceptEnabled": {
              "Ref": "AutoAcceptEnabled"
            }
          }
        },
        "VpcEndpoint": {
          "DependsOn": "VpcEndpointService",
          "Type": "ALIYUN::PrivateLink::VpcEndpoint",
          "Properties": {
            "VpcId": {
              "Ref": "VpcId"
            },
            "EndpointName": {
              "Ref": "EndpointName"
            },
            "Zone": [
              {
                "ZoneId": {
                  "Ref": "MasterZoneId"
                },
                "VSwitchId": {
                  "Ref": "VSwitchId"
                }
              }
            ],
            "SecurityGroupId": {
              "Ref": "SecurityGroupId"
            },
            "ServiceId": {
              "Ref": "VpcEndpointService"
            }
          }
        }
      },
      "Outputs": {
        "ServiceName": {
          "Description": "The name of the endpoint service.",
          "Value": {
            "Fn::GetAtt": [
              "VpcEndpointService",
              "ServiceName"
            ]
          }
        },
        "ServiceDomain": {
          "Description": "The domain name of the endpoint service.",
          "Value": {
            "Fn::GetAtt": [
              "VpcEndpointService",
              "ServiceDomain"
            ]
          }
        },
        "ServiceId": {
          "Description": "The ID of the endpoint service.",
          "Value": {
            "Fn::GetAtt": [
              "VpcEndpointService",
              "ServiceId"
            ]
          }
        },
        "EndpointDomain": {
          "Description": "The domain name of the endpoint.",
          "Value": {
            "Fn::GetAtt": [
              "VpcEndpoint",
              "EndpointDomain"
            ]
          }
        },
        "Bandwidth": {
          "Description": "The bandwidth of the endpoint.",
          "Value": {
            "Fn::GetAtt": [
              "VpcEndpoint",
              "Bandwidth"
            ]
          }
        },
        "EndpointId": {
          "Description": "The ID of the endpoint.",
          "Value": {
            "Fn::GetAtt": [
              "VpcEndpoint",
              "EndpointId"
            ]
          }
        }
      }
    }
  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      MasterZoneId:
        Type: String
        Description: The master zone id to create load balancer instance.
        AssociationProperty: ALIYUN::ECS::Instance::ZoneId
      SlaveZoneId:
        Type: String
        Description: The slave zone id to create load balancer instance.
        AssociationProperty: ALIYUN::ECS::Instance::ZoneId
      VpcId:
        Type: String
        Description: The VPC id to create load balancer instance. For VPC network only.
        AssociationProperty: ALIYUN::ECS::VPC::VPCId
      VSwitchId:
        Type: String
        Description: The VSwitch id to create load balancer instance. For VPC network only.
        AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
        AssociationPropertyMetadata:
          VpcId: VpcId
          ZoneId: MasterZoneId
      SecurityGroupId:
        Type: CommaDelimitedList
        Description: The security group associated with the endpoint network interface. The security group can control the data communication from the VPC to the endpoint network interface.
        MinLength: 1
        MaxLength: 10
      LoadBalancerSpec:
        Type: String
        Description: 'The specification of the Server Load Balancer instance. Allowed value: slb.s1.small|slb.s2.small|slb.s2.medium|slb.s3.small|slb.s3.medium|slb.s3.large|slb.s3.xlarge|slb.s3.xxlarge. Default value: slb.s1.small. The supported performance specification in each region is different, two specifications are supported in the US East 1 region. If the region does not support the performance-guaranteed instances, the value will not take effect.'
        Default: slb.s1.small
      LoadBalancerName:
        Type: String
        Description: Name of created load balancer. Length is limited to 1-80 characters, allowed to contain letters, numbers, '-, /, _,.' When not specified, a default name will be assigned.
        Default: mytest
      User:
        Type: Json
        Description: Account IDs to the whitelist of an endpoint service.
        MinLength: 1
        MaxLength: 20
        Default: Null
      ServiceDescription:
        Type: String
        Description: The description for the endpoint service.
        MinLength: 2
        MaxLength: 256
        Default: test service endpoint
      ConnectBandwidth:
        Type: Number
        Description: 'The default maximum bandwidth of the endpoint connection. Valid values: 100 to 1024. Unit: Mbit/s.'
        MinValue: 100
        MaxValue: 1024
        Default: 100
      AutoAcceptEnabled:
        Type: Boolean
        Description: |-
          Specifies whether to automatically accept endpoint connection requests. Valid values:
          true: automatically accepts endpoint connection requests.
          false: does not automatically accept endpoint connection requests.
        AllowedValues:
          - true
          - false
        Default: true
      EndpointName:
        Type: String
        Description: |-
          The name of the endpoint.
          The name must be 2 to 128 characters in length and can contain digits, underscores
          (_), and hyphens (-). The name must start with a letter.
        MinLength: 2
        MaxLength: 128
        Default: mytest
    Resources:
      LoadBalancer:
        Type: ALIYUN::SLB::LoadBalancer
        Properties:
          SupportPrivateLink: true
          PayType: PayOnDemand
          VpcId:
            Ref: VpcId
          VSwitchId:
            Ref: VSwitchId
          LoadBalancerSpec:
            Ref: LoadBalancerSpec
          LoadBalancerName:
            Ref: LoadBalancerName
          AddressType: intranet
          MasterZoneId:
            Ref: MasterZoneId
          SlaveZoneId:
            Ref: SlaveZoneId
      VpcEndpointService:
        DependsOn: LoadBalancer
        Type: ALIYUN::PrivateLink::VpcEndpointService
        Properties:
          User:
            Ref: User
          ServiceDescription:
            Ref: ServiceDescription
          Resource:
            - ZoneId:
                Ref: MasterZoneId
              ResourceId:
                Ref: LoadBalancer
              ResourceType: slb
          ConnectBandwidth:
            Ref: ConnectBandwidth
          AutoAcceptEnabled:
            Ref: AutoAcceptEnabled
      VpcEndpoint:
        DependsOn: VpcEndpointService
        Type: ALIYUN::PrivateLink::VpcEndpoint
        Properties:
          VpcId:
            Ref: VpcId
          EndpointName:
            Ref: EndpointName
          Zone:
            - ZoneId:
                Ref: MasterZoneId
              VSwitchId:
                Ref: VSwitchId
          SecurityGroupId:
            Ref: SecurityGroupId
          ServiceId:
            Ref: VpcEndpointService
    Outputs:
      ServiceName:
        Description: The name of the endpoint service.
        Value:
          Fn::GetAtt:
            - VpcEndpointService
            - ServiceName
      ServiceDomain:
        Description: The domain name of the endpoint service.
        Value:
          Fn::GetAtt:
            - VpcEndpointService
            - ServiceDomain
      ServiceId:
        Description: The ID of the endpoint service.
        Value:
          Fn::GetAtt:
            - VpcEndpointService
            - ServiceId
      EndpointDomain:
        Description: The domain name of the endpoint.
        Value:
          Fn::GetAtt:
            - VpcEndpoint
            - EndpointDomain
      Bandwidth:
        Description: The bandwidth of the endpoint.
        Value:
          Fn::GetAtt:
            - VpcEndpoint
            - Bandwidth
      EndpointId:
        Description: The ID of the endpoint.
        Value:
          Fn::GetAtt:
            - VpcEndpoint
            - EndpointId