エンドポイントとは、Alibaba Cloud サービス API のドメイン名のことです (例:ecs.cn-hangzhou.aliyuncs.com)。エンドポイントは、サービスとリージョンによって異なります。このトピックでは、Alibaba Cloud SDK V2.0 for Go でエンドポイントを設定する方法について説明します。
APIリクエストエンドポイントの設定
SDK V2.0 では、優先度の高い順に次の 2 つのエンドポイント設定方法を提供しています。
-
方法 1:エンドポイントの指定 (推奨)
V2.0 SDK には、エンドポイントを設定するための 2 つの方法があります:エンドポイントを直接指定する方法と、リージョン ID を指定して自動的に取得する方法です。
func main() { config := &openapi.Config{ // 認証情報の設定は省略します。 // アクセスするエンドポイント。 Endpoint: tea.String("<endpoint>"), } client, _err = ecs20140526.NewClient(config) } -
方法 2:リージョン ID の指定
エンドポイントを指定しない場合、クラウドサービスのクライアントオブジェクトを初期化する際にリージョン ID を指定できます。SDK は、対応するエンドポイントを自動的に解決します。
func main() { config := &openapi.Config{ // 認証情報の設定は省略します。 // アクセスするリージョン。 RegionId: tea.String("<RegionId>"), } client, _err := ecs20140526.NewClient(config) }
認証エンドポイントの設定
ファイルをアップロードする一部の OpenAPI 操作では、リクエストクライアントを初期化する際に、ファイルアップロード認証コードの VPC エンドポイントを設定できます。これにより、ネットワークがより安定します。VPC エンドポイントを設定しない場合は、デフォルトのパブリックサービスアドレスが使用されます。このアドレスでは、グローバルアクセラレーションがすでに有効になっています。
-
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"), } client, err := facebody20191230.NewClient(config) if err != nil { panic(err) } f, err := os.Open("The directory of the file that you want to upload in your computer") 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 エンドポイントと、内部 OSS エンドポイントを設定します。
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("The directory of the file that you want to upload in your computer") 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 ポータルで確認できます。
-
ポータルのトップメニューから [Products] を選択し、ECS などのプロダクトを選択します。
-
[製品ホームページ] で、[サービスリージョン一覧] を見つけます。
-
リージョン ID に対応するエンドポイントを選択し、コピーして貼り付けます。
または、「API デバッグ」ページで、左側のナビゲーションペインにある [リージョン] をクリックすると、そのクラウドサービスでサポートされているエンドポイントが表示されます。