全部產品
Search
文件中心

Alibaba Cloud SDK:Endpoint 配置

更新時間:Jul 01, 2024

本節主要介紹升級版 SDK 對於 Endpoint 的配置。

說明

Endpoint 是請求介面服務的網路網域名稱,如產品 ECS 的某個 Endpoint:ecs.cn-hangzhou.aliyuncs.com。每個產品都有其獨立的 Endpoint,並且 Endpoint 與服務地區 RegionId 有關,不同地區可能是不同的 Endpoint。

Endpoint 設定

升級版 SDK 在 Endpoint 定址上簡化了許多,只提供了最容易理解的兩種方式,下面按優先順序排列:

  1. 使用者自訂:使用者可以通過在初始化時指定雲產品 Client 執行個體的請求地址,產品的 Endpoint 可以通過

    OpenAPI 開發人員門戶的產品首頁中尋找,具體參考文末。

func main() {
    config := &openapi.Config{
        // 省略憑證配置
        // 訪問的 Endpoint
        Endpoint: tea.String("<endpoint>"),
    }
    client, _err = ecs20140526.NewClient(config)
}

2. Endpoint 拼接規則:在請求產品 SDK 具有 Endpoint 資料時,當前通過 RegionId 定址的邏輯才會生效,否則會在執行個體化 Client 對象時拋出異常,其 message 為config.endpoint can not be empty,必須使用使用者自訂的方式指定 Endpoint。 Endpoint 資料檔案樣本(Ecs Endpoint Data),其中不具備的 Region 會通過拼接規則:${產品 Id}.${RegionId}.aliyuncs.com來進行拼接。

func main() {
    config := &openapi.Config{
        // 省略憑證配置
        // 訪問的 Region
        RegionId: tea.String("<RegionId>"),
    }
    client, _err := ecs20140526.NewClient(config)
}

檔案上傳 Endpoint

升級版本 SDK 還為使用者提供了檔案上傳的 Endpoint 配置,分為兩個:

  • 鑒權服務 openplatform 的地址,可以在 VPC 環境配置 VPC 地址來請求上傳檔案的鑒權資訊。

 // 省略憑證配置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))
}
  • 上傳檔案的地址,可以在 VPC 或者內網環境配置內網的地址來上傳檔案。

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 可以通過在平台 開發人員門戶 上尋找:

  1. 開啟雲產品首頁:在首頁選擇相應雲產品,例如 ECS:

image.png

2. 找到服務地區列表:

image.png

3. 選擇相應 Region 所對應的 Endpoint,進行複製粘貼即可。

還可以這樣尋找

在 API 調試介面,找到對應介面,選擇服務地址 Region,平台會自動產生 SDK 代碼,代碼中可以查看需要的 Endpoint。

image.png