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

Alibaba Cloud SDK:Alibaba Cloud SDK V1.0 for Go との統合

最終更新日:May 22, 2025

API 呼び出しを容易にするために、プロジェクトに Alibaba Cloud SDK を統合することをお勧めします。SDK は開発プロセスを簡素化し、機能を迅速に統合し、O&M コストを大幅に削減します。このトピックでは、プロジェクトに Alibaba Cloud SDK V1.0 for Go を統合し、SDK を使用して開発する方法について説明します。

重要

Alibaba Cloud SDK V1.0 for Go のサポートは終了しました。詳細については、「2025年 3月 1日における Alibaba Cloud SDK V1.0 for Golang のサポート終了」をご参照ください。Alibaba Cloud SDK V2.0 for Go を使用することをお勧めします。

前提条件

Go 1.10.x がインストールされていること。

SDK のインストール

Alibaba Cloud SDK V1.0 for Go をインストールすると、コアライブラリが自動的にインストールされます。そのため、SDK のみインストールする必要があります。

クラウドサービス SDK

クラウドサービスの SDK には、API 操作の呼び出しに必要なリクエストオブジェクトとレスポンスオブジェクトが含まれています。次の例は、Elastic Compute Service (ECS) の SDK をインストールする方法を示しています。ターミナルまたはコマンドラインインターフェイス ( CLI ) で、次のインストールコマンドを実行します。

go get github.com/aliyun/alibaba-cloud-sdk-go/services/ecs

Alibaba Cloud サービスの SDK V1.0 for Go は、github.com/aliyun/alibaba-cloud-sdk-go/services/${Service コード} の形式で命名されます。

SDK のコアライブラリ

SDK のコアライブラリには、クライアントオブジェクト、署名ロジック、およびエラー処理ロジックが含まれており、これらは API 操作の呼び出しに必要な情報です。汎用呼び出しを行うには、次のコマンドを実行します。

go get -u github.com/aliyun/alibaba-cloud-sdk-go/sdk

SDK の使用

次の例は、Alibaba Cloud SDK V1.0 を使用して ECS の DescribeInstances API 操作を呼び出す方法を示しています。

1. リクエストクライアントを初期化する

すべての API 操作は、SDK ライブラリによって提供されるクライアントオブジェクトを使用して呼び出されます。API 操作を呼び出す前に、リクエストクライアントを初期化する必要があります。この例では、リクエストクライアントは AccessKey ペアを使用して初期化されます。詳細については、「アクセス認証情報の管理」をご参照ください。

説明

この例では、AccessKey ペアは ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数から取得されます。これらの環境変数は、コードを実行する前に設定する必要があります。詳細については、「Linux、macOS、および Windows での環境変数の設定」をご参照ください。

import (
	"os"

	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
	config := sdk.NewConfig()
	credential, err := credentials.NewStaticAKCredentialsProviderBuilder().
		WithAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
		WithAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
		Build()
	if err != nil {
		panic(err)
	}
	// クラウドサービスクライアントを初期化します。
	ecsClient, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential)
	if err != nil {
		panic(err)
	}
}

2. リクエストオブジェクトを作成する

SDK によって提供されるリクエストオブジェクトを使用して、リクエストパラメータをカプセル化できます。

説明

API 操作のリクエストオブジェクトには、<API 操作名>Request という形式で名前を付けます。

// サンプルコードでは、Requests ライブラリが使用されています。そのため、ライブラリをインポートするには、"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" を追加する必要があります。

// リクエストオブジェクトを作成します。
request := ecs.CreateDescribeInstancesRequest()
request.InstanceIds = "[\"i-bp1dXXXXXXXXXXXX\"]"
request.PageSize = requests.Integer("100")
request.PageNumber = requests.Integer("1")

3. API リクエストを開始する

手順 1 で構築したリクエストクライアントを使用して、API 操作を呼び出します。操作のリクエストパラメータは、手順 2 で作成したリクエストオブジェクトにカプセル化されています。

response, err := ecsClient.DescribeInstances(request)
if err != nil {
	panic(err)
}
fmt.Print(response.GetHttpContentString())

完全なサンプルコード

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
	config := sdk.NewConfig()
	credential, err := credentials.NewStaticAKCredentialsProviderBuilder().
		WithAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
		WithAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
		Build()
	if err != nil {
		panic(err)
	}

	ecsClient, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential)
	if err != nil {
		panic(err)
	}

	// リクエストオブジェクトを作成します。
	request := ecs.CreateDescribeInstancesRequest()
	request.InstanceIds = "[\"i-bp1dXXXXXXXXXXXX\"]"
	request.PageSize = requests.Integer("100")
	request.PageNumber = requests.Integer("1")

	response, err := ecsClient.DescribeInstances(request)
	if err != nil {
		panic(err)
	}
	fmt.Print(response.GetHttpContentString())
}

関連情報

  • プロキシ設定やタイムアウト設定などの SDK の詳細設定については、「詳細設定」をご参照ください。

  • AccessKey ペアの作成方法については、「AccessKey ペアを作成する」をご参照ください。