すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud SDK:エンドポイントを設定する

最終更新日:Jan 15, 2025

エンドポイントは、Alibaba Cloud サービス API のドメイン名です。たとえば、Elastic Compute Service (ECS) のエンドポイントは ecs.cn-hangzhou.aliyuncs.com です。Alibaba Cloud の各サービスには、固有のエンドポイントがあります。サービスの各エンドポイントは、リージョンによって異なる場合があります。このトピックでは、Go 用 Alibaba Cloud SDK V2.0 でエンドポイントを設定する方法について説明します。

API リクエストの送信先エンドポイントを設定する

Alibaba Cloud SDK V2.0 は、エンドポイントを設定するための 2 つの方法を提供しています。次のセクションでは、優先順位の高い順に方法について説明します。

  1. カスタムエンドポイントを指定します。クライアントを初期化するときに、エンドポイントを指定できます。OpenAPI Explorer でエンドポイントを照会できます。詳細については、このトピックの「付録: エンドポイントを照会する」セクションをご参照ください。

    func main() {
        config := &openapi.Config{
            // 認証設定は省略します。
            // アクセスするエンドポイント。
            Endpoint: tea.String("<endpoint>"),
        }
        client, _err = ecs20140526.NewClient(config)
    }
  2. カスタムリージョン ID を指定します。

    • Alibaba Cloud サービスの SDK にリージョン ID とエンドポイントの関係オブジェクトが含まれており、指定したリージョン ID が関係オブジェクトに含まれている場合は、関係オブジェクトからエンドポイントを取得できます。

    • Alibaba Cloud サービスの SDK にリージョン ID とエンドポイントの関係オブジェクトが含まれていない場合、または指定したリージョン ID が関係オブジェクトに含まれていない場合は、連結ルールに基づいてエンドポイントが自動的に連結されます。

    func main() {
        config := &openapi.Config{
            // 認証設定は省略します。
            // アクセスするリージョン。
            RegionId: tea.String("<RegionId>"),
        }
        client, _err := ecs20140526.NewClient(config)
    }

VPC エンドポイントが使用されるシナリオ

Alibaba Cloud SDK を使用して API オペレーションを呼び出し、ビジネスに次の要件がある場合は、VPC エンドポイントを設定することをお勧めします。

  • ビジネスシステムは、オンプレミスデータセンターとクラウドデータセンターの両方にデプロイされています。異なるビジネスモジュールは、VPC ネットワークに基づいて構築され、分離されたクラウド環境を構築します。データセンターはインターネットを介して相互に通信します。

  • クラウドデータセンターは、VPC ネットワークに基づいてデプロイされます。Express Connect 回線を介してオンプレミスデータセンターと通信し、ハイブリッドクラウド接続を実装します。これにより、コアユーザーデータのセキュリティが確保され、ワークロードの変動への対応と高速なデータ同期に役立ちます。

  • VPC ネットワークに基づいてデプロイされた複数のアプリケーションが外部サービスを提供する必要があり、アプリケーションのワークロードはさまざまな時点で変動します。この場合、複数の IP アドレスが帯域幅を共有する必要があり、トラフィックの変動を削減してコストを削減する必要があります。

  • クラウドサービスは、VPC ネットワークに基づいて構築されます。さまざまなリージョンのユーザーのネットワークレイテンシを削減するために、ビジネスシステムは異なるノードにデプロイされます。ユーザーエクスペリエンスを最適化するには、これらのノード間の高帯域幅接続が必要です。

認証情報をリクエストするためのエンドポイントを設定する

一部の API オペレーションは、オープンプラットフォームのエンドポイントを設定するために呼び出すことができます。エンドポイントを設定しない場合は、デフォルトのパブリックエンドポイントが使用されます。エンドポイントを使用してファイルアップロード認証サービスを呼び出し、認証情報とデフォルトの Object Storage Service (OSS) バケットに関する情報を取得できます。

  • 認証に使用されるエンドポイント。VPC を介して認証情報をリクエストするように仮想プライベートクラウド (VPC) エンドポイントを設定できます。認証情報はファイルのアップロードに使用されます。

    // 認証設定パッケージ 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{
            // 認証設定は省略します。
            // アクセスするリージョン。
            RegionId: tea.String("<RegionId>"),
            // リージョン ID に基づいて 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)
        // RuntimeOptions インスタンスを作成し、ランタイムパラメーターを指定します。
        runtime := &util.RuntimeOptions{}
        runtime.ReadTimeout = tea.Int(10000)
        resp, err := client.DetectBodyCountAdvance(request, runtime)
        if err != nil {
            panic(err)
        }
        // レスポンス。サーバー側で返される本文とヘッダーが含まれます。
        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 を介して認証情報をリクエストするように 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{
            // 認証設定は省略します。
            // アクセスするリージョン。
            RegionId: tea.String("<RegionId>"),
            // リージョン ID に基づいて VPC エンドポイントを設定します。
            OpenPlatformEndpoint: tea.String("openplatform-vpc.cn-shanghai.aliyuncs.com"),
            // ファイルのアップロードに使用する OSS エンドポイントを設定します。エンドポイントタイプを internal に設定すると、内部エンドポイントを使用して VPC またはクラシックネットワーク経由でファイルを OSS にアップロードできます。エンドポイントタイプを accelerate に設定すると、中国本土以外の高速エンドポイントを使用してファイルを OSS にアップロードできます。
            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)
        // RuntimeOptions インスタンスを作成し、ランタイムパラメーターを指定します。
        runtime := &util.RuntimeOptions{}
        runtime.ReadTimeout = tea.Int(10000)
        resp, err := client.DetectBodyCountAdvance(request, runtime)
        if err != nil {
            panic(err)
        }
        // レスポンス。サーバー側で返される本文とヘッダーが含まれます。
        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))
    }

付録: エンドポイントを照会する

OpenAPI Explorer でエンドポイントを照会できます。

  1. OpenAPI Explorer のホームページで Alibaba Cloud サービスを選択します。この例では、ECS が選択されています。

image.png

2. ECS のホームページで、[リージョン] タブをクリックします。

image.png

3. 指定するリージョンを見つけ、そのリージョンの ECS のエンドポイントをコピーします。

また、「デバッグ」ページで ECS のエンドポイントを照会することもできます。このページで、左側のナビゲーションペインの [リージョン] にポインターを移動すると、ECS のエンドポイントが表示されます。

image