Endpoint配置

更新时间:
复制 MD 格式

Endpoint是请求接口服务的网络域名,如产品ECS的某个Endpoint:ecs.cn-hangzhou.aliyuncs.com。每个产品都有其独立的Endpoint,并且Endpoint与服务区域RegionId有关,不同地域可能是不同的 Endpoint。本文为您介绍V2.0 Go SDK对于Endpoint的配置。

Endpoint设置

V2.0 SDK提供了两种Endpoint设置方式,下面按优先级排列:

  1. 方式一:指定Endpoint(推荐)

    可以在初始化云产品客户端对象时指定Endpoint,支持公网Endpoint和VPC Endpoint。

    示例代码:

    func main() {
        config := &openapi.Config{
            // 省略凭证配置
            // 访问的 Endpoint
            Endpoint: tea.String("<endpoint>"),
        }
        client, _err = ecs20140526.NewClient(config)
    }
  2. 方式二:指定RegionId

    在未指定Endpoint的情况下,可以在初始化云产品客户端对象时指定RegionId,SDK底层将通过自动寻址的方式获取相应的Endpoint。

    func main() {
        config := &openapi.Config{
            // 省略凭证配置
            // 访问的 Region
            RegionId: tea.String("<RegionId>"),
        }
        client, _err := ecs20140526.NewClient(config)
    }

获取文件上传授权码的Endpoint

针对部分需要上传文件的OpenAPI,在初始化请求客户端时,支持配置文件上传授权码的VPC Endpoint,以确保网络更加稳定。如未设置,则将使用默认的公网服务地址(已开启全球加速)。

  • 上传文件鉴权服务Endpoint,您可以在VPC环境配置VPC Endpoint来请求上传文件的鉴权信息。

     // 省略凭证配置package main
    
    import (
        "encoding/json"
        "fmt"
        "os"
    
        openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        facebody20191230 "github.com/alibabacloud-go/facebody-20191230/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
        "github.com/alibabacloud-go/tea/tea"
    )
    
    func main() {
        config := &openapi.Config{
            // 省略凭证配置
            // 访问的 Region
            RegionId: tea.String("<RegionId>"),
            // 根据 regionId 设置 VPC 请求的地址
            OpenPlatformEndpoint: tea.String("openplatform-vpc.cn-shanghai.aliyuncs.com"),
        }
        client, err := facebody20191230.NewClient(config)
        if err != nil {
            panic(err)
        }
        f, err := os.Open("本地文件路径")
        if err != nil {
            panic(err)
        }
        request := &facebody20191230.DetectBodyCountAdvanceRequest{}
        request.SetImageURLObject(f)
        // 创建RuntimeObject实例并设置运行参数。
        runtime := &util.RuntimeOptions{}
        runtime.ReadTimeout = tea.Int(10000)
        resp, err := client.DetectBodyCountAdvance(request, runtime)
        if err != nil {
            panic(err)
        }
        // response 包含服务端响应的 body 和 headers
        body, err := json.Marshal(resp.Body)
        if err != nil {
            panic(err)
        }
        headers, err := json.Marshal(resp.Headers)
        if err != nil {
            panic(err)
        }
        fmt.Printf("body: %s\n", string(body))
        fmt.Printf("header: %s\n", string(headers))
    }
  • 上传文件鉴权服务的Endpoint,您可以在VPC或者内网环境配置VPC Endpoint来请求上传文件的鉴权信息。

    package main
    
    import (
        "encoding/json"
        "fmt"
        "os"
    
        openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        facebody20191230 "github.com/alibabacloud-go/facebody-20191230/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
        "github.com/alibabacloud-go/tea/tea"
    )
    
    func main() {
        config := &openapi.Config{
            // 省略凭证配置
            // 访问的 Region
            RegionId: tea.String("<RegionId>"),
            // 根据 regionId 设置 VPC 请求的地址
            OpenPlatformEndpoint: tea.String("openplatform-vpc.cn-shanghai.aliyuncs.com"),
            // 根据 regionId 设置 OSS 请求的地址,internal:vpc 和经典网络、accelerate: 国外加速域名
            EndpointType: tea.String("internal"),
        }
        client, err := facebody20191230.NewClient(config)
        if err != nil {
            panic(err)
        }
        f, err := os.Open("本地文件路径")
        if err != nil {
            panic(err)
        }
        request := &facebody20191230.DetectBodyCountAdvanceRequest{}
        request.SetImageURLObject(f)
        // 创建RuntimeObject实例并设置运行参数。
        runtime := &util.RuntimeOptions{}
        runtime.ReadTimeout = tea.Int(10000)
        resp, err := client.DetectBodyCountAdvance(request, runtime)
        if err != nil {
            panic(err)
        }
        // response 包含服务端响应的 body 和 headers
        body, err := json.Marshal(resp.Body)
        if err != nil {
            panic(err)
        }
        headers, err := json.Marshal(resp.Headers)
        if err != nil {
            panic(err)
        }
        fmt.Printf("body: %s\n", string(body))
        fmt.Printf("header: %s\n", string(headers))
    }

附:Endpoint查找方式

产品的Endpoint可以通过在OpenAPI门户上寻找:

  1. 在门户顶部菜单选择云产品,例如ECS。

  2. 在云产品主页找到服务区域列表。

  3. 选择相应RegionId所对应的Endpoint,进行复制粘贴即可。

还可以在API调试界面,在左侧栏单击服务区域,查看云产品支持的Endpoint。