All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::PrivateLink::VpcEndpointService

Last Updated:Sep 30, 2024

ALIYUN::PrivateLink::VpcEndpointService is used to create an endpoint service.

Syntax

{
  "Type": "ALIYUN::PrivateLink::VpcEndpointService",
  "Properties": {
    "User": List,
    "ServiceDescription": String,
    "Resource": List,
    "ConnectBandwidth": Integer,
    "AutoAcceptEnabled": Boolean,
    "Payer": String,
    "ZoneAffinityEnabled": Boolean,
    "ServiceResourceType": String,
    "Tags": List,
    "ResourceGroupId": String,
    "DeletionForce": Boolean
  }
}

Properties

Property

Type

Required

Editable

Description

Constraint

User

List

No

Yes

The Alibaba Cloud accounts in the whitelist of the endpoint service.

You can add up to 20 Alibaba Cloud accounts to the whitelist.

ServiceDescription

String

No

Yes

The description of the endpoint service.

The description must be 2 to 256 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.

Resource

List

No

Yes

The service resources that you want to add to the endpoint service.

You can add up to 20 service resources to the endpoint service.

For more information, see Resource properties.

ConnectBandwidth

Integer

No

Yes

The default maximum bandwidth.

Valid values: 100 to 1024.

Unit: Mbit/s.

AutoAcceptEnabled

Boolean

No

Yes

Specifies whether to automatically accept endpoint connection requests.

Valid values:

  • true

  • false (default)

Payer

String

No

No

The payer.

Valid values:

  • Endpoint: service consumer

  • EndpointService: service provider

ZoneAffinityEnabled

Boolean

No

Yes

Specifies whether to support zone affinity.

Valid values:

  • true

  • false (default)

ServiceResourceType

String

No

No

The type of the service resource.

Set the value to slb. A value of slb specifies Classic Load Balancer (CLB).

Tags

List

No

Yes

The tags.

You can add up to 20 tags.

ResourceGroupId

String

No

Yes

The ID of the resource group.

None.

DeletionForce

Boolean

No

Yes

Specifies whether to forcefully delete the endpoint service.

Valid values:

  • true

  • false

Resource syntax

"Resource": [
  {
    "ZoneId": String,
    "ResourceId": String,
    "ResourceType": String
  }
]

Resource properties

Property

Type

Required

Editable

Description

Constraint

ZoneId

String

Yes

No

The ID of the zone to which the service resource belongs.

None.

ResourceId

String

Yes

No

The service resource that you want to add to the endpoint service.

None.

ResourceType

String

Yes

No

The type of the service resource that you want to add to the endpoint service.

Set the value to slb. A value of slb specifies the Server Load Balancer (SLB) instances that reside in a VPC and support PrivateLink.

Note

Only SLB instances that support PrivateLink can be used as service resources for endpoint services.

Tags syntax

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

Tags properties

Property

Type

Required

Editable

Description

Constraint

Key

String

Yes

No

The tag key.

You can specify up to 20 tag keys. The tag key cannot be an empty string.

The tag key can be up to 64 characters in length, and cannot start with aliyun or acs:. It cannot contain http:// or https://.

Value

String

No

No

The tag value.

You can specify up to 20 tag values. The tag value can be an empty string.

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

Return values

Fn::GetAtt

  • ServiceName: the name of the endpoint service.

  • ServiceDomain: the domain name of the endpoint service.

  • ServiceId: the ID of the endpoint service.

  • ServiceDescription: the description of the endpoint service.

  • MinBandwidth: the minimum bandwidth of the endpoint connection.

  • MaxBandwidth: the maximum bandwidth of the endpoint connection.

Examples

YAML format

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
Resources:
  LoadBalancer:
    Type: ALIYUN::SLB::LoadBalancer
    Properties:
      SupportPrivateLink: true
      PayType: PayOnDemand
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: VSwitchId
      LoadBalancerSpec: slb.s1.small
      LoadBalancerName: mytest
      AddressType: intranet
      MasterZoneId:
        Ref: MasterZoneId
      SlaveZoneId:
        Ref: SlaveZoneId
  VpcEndpointService:
    DependsOn: LoadBalancer
    Type: ALIYUN::PrivateLink::VpcEndpointService
    Properties:
      User:
        - Ref: ALIYUN::AccountId
      ServiceDescription: test service endpoint
      Resource:
        - ZoneId:
            Ref: MasterZoneId
          ResourceId:
            Ref: LoadBalancer
          ResourceType: slb
      ConnectBandwidth: 100
      AutoAcceptEnabled: true
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                    

JSON format

{
  "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"
      }
    }
  },
  "Resources": {
    "LoadBalancer": {
      "Type": "ALIYUN::SLB::LoadBalancer",
      "Properties": {
        "SupportPrivateLink": true,
        "PayType": "PayOnDemand",
        "VpcId": {
          "Ref": "VpcId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "LoadBalancerSpec": "slb.s1.small",
        "LoadBalancerName": "mytest",
        "AddressType": "intranet",
        "MasterZoneId": {
          "Ref": "MasterZoneId"
        },
        "SlaveZoneId": {
          "Ref": "SlaveZoneId"
        }
      }
    },
    "VpcEndpointService": {
      "DependsOn": "LoadBalancer",
      "Type": "ALIYUN::PrivateLink::VpcEndpointService",
      "Properties": {
        "User": [
          {
            "Ref": "ALIYUN::AccountId"
          }
        ],
        "ServiceDescription": "test service endpoint",
        "Resource": [
          {
            "ZoneId": {
              "Ref": "MasterZoneId"
            },
            "ResourceId": {
              "Ref": "LoadBalancer"
            },
            "ResourceType": "slb"
          }
        ],
        "ConnectBandwidth": 100,
        "AutoAcceptEnabled": true
      }
    }
  },
  "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"
        ]
      }
    }
  }
}