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

Alibaba Cloud SDK:IDE で Alibaba Cloud Go SDK を使用する

最終更新日:Jun 04, 2026

Windows 上で Visual Studio Code (VS Code) を使用して Alibaba Cloud Go SDK を使い始める方法を説明します。

前提条件

SDK の使用

OpenAPI Explorer のサンプルプロジェクトの使用

説明

サンプルプロジェクトのダウンロードが失敗することがあります。その場合は、代わりに既存のプロジェクトで SDK を使用するをご参照ください。

  1. API デバッグページの OpenAPI Portal に移動します。 クラウド製品と API を選択します。 この例では、ECS の DescribeRegions API を使用します。 検索バーに「DescribeRegions」と入力し、API 名をクリックします。

    1716346246233_4A41CC11-FA46-4973-BC7B-C4AAD6E7F3F0

  2. [パラメータ設定] タブで、必要なパラメータを入力します。 右側の [ドキュメント] タブには、API の説明、注意事項、課金情報、およびパラメータの詳細が記載されています。

    DescribeRegions API は、3 つのパラメーターをサポートしています。

    パラメーター名

    必須

    説明

    InstanceChargeType

    任意

    サポートされるリージョンは、課金方法によって異なります。 デフォルト:PrePaid。

    ResourceType

    任意

    サポートされるリージョンは、リソースタイプによって異なります。 デフォルト:instance。

    AcceptLanguage

    任意

    返される結果の言語。 デフォルト:zh-CN。

    1716346635851_0B018C7F-D759-497b-B529-58E23E4AC41B

  3. [SDK サンプル] タブで、言語を選択し、[プロジェクトのダウンロード] をクリックします。 ダウンロードしたプロジェクトを解凍します。

    image

  4. VS Code で、[File] > [Open Folder] の順にクリックし、解凍したフォルダーを選択します。

  5. [Terminal] > [New Terminal] の順にクリックして、下部にターミナルを開きます。

    image

  6. 次のコマンドを実行して、モジュールの依存関係を更新します。

    go mod tidy
  7. 次のコマンドを実行して、main パッケージのサンプルコードを実行します。

    go run ./main
  8. 結果を検証します。 ターミナルで Ctrl+F を押し、statusCode を検索します。 "statusCode": 200 の応答は成功を示します。

    image

既存のプロジェクトで SDK を使用する

  1. VS Code で、[File] > [Open Folder] の順にクリックし、gosdkproject などのプロジェクトフォルダーを作成または選択します。

  2. [Terminal] > [New Terminal] の順にクリックし、go mod init gosdkproject を実行して Go プロジェクトを初期化します。

    image

  3. SDK を入手します。

    SDK センターで、ECS などのクラウド製品を選択し、[SDK Version][V2.0] に、[Language] を [Go] に設定します。

    image

  4. SDK をインストールします。

    インストールコマンドをターミナルにコピーして実行します。

    image

  5. .go ファイルを作成します。 プロジェクト名の横にある [New File...] をクリックし、ecsDescribeRegions.go などのファイル名を入力します。

    image

  6. クライアントを初期化します。

    ECS API を呼び出す前に ECS クライアントを初期化します。

    重要
    1. クライアントの初期化にはアクセスキーペアが必要です。AccessKey を作成

    2. アクセスキーペアを取得したら、環境変数として設定します。Linux、macOS、Windows システムで環境変数を設定

    3. エンドポイント設定:Endpoints

    package main
    
    import (
    	"os"
    
    	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    	ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client"
    	"github.com/alibabacloud-go/tea/tea"
    )
    
    // CreateClient は ECS クライアントを初期化して返します。
    // この関数はパラメーターを受け取りませんが、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されている必要があります。
    // return *ecs20140526.Client: ECS クライアントを返します。
    // return error: クライアントの作成中にエラーが発生した場合、nil ではないエラーオブジェクトを返します。
    func CreateClient() (_result *ecs20140526.Client, _err error) {
        // openapi.Config オブジェクトを初期化して ECS クライアントを設定します。
        config := &openapi.Config{
            AccessKeyId:     tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
            AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
            Endpoint:        tea.String("ecs.cn-hangzhou.aliyuncs.com"),
        }
        // 設定を使用して ECS クライアントインスタンスを作成し、返します。
        return ecs20140526.NewClient(config)
    }
    
  7. API を呼び出します。対象となる API については、API ドキュメントをご確認ください。次の例では、ECS の DescribeRegions API を呼び出します。

    説明

    各 API には、${APIName}${Request} という命名規則に従った個別のリクエストオブジェクトがあります (例: DescribeRegionsRequest)。

    package main
    
    import (
    	"os"
    
    	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    	ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client"
    	"github.com/alibabacloud-go/tea/tea"
    )
    
    // CreateClient は ECS クライアントを初期化して返します。
    // この関数はパラメーターを受け取りませんが、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されている必要があります。
    // return *ecs20140526.Client: ECS クライアントを返します。
    // return error: クライアントの作成中にエラーが発生した場合、nil ではないエラーオブジェクトを返します。
    func CreateClient() (_result *ecs20140526.Client, _err error) {
    	// openapi.Config オブジェクトを初期化して ECS クライアントを設定します。
    	config := &openapi.Config{
    		AccessKeyId:     tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    		AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
    		Endpoint:        tea.String("ecs.cn-hangzhou.aliyuncs.com"),
    	}
    	// 設定を使用して ECS クライアントインスタンスを作成し、返します。
    	return ecs20140526.NewClient(config)
    }
    
    // InvokeApi 関数は、ECS の DescribeRegions API を呼び出して、利用可能なリージョン情報を照会します。
    //
    // 戻り値:
    // _result: 照会されたリージョン情報を含む *ecs20140526.DescribeRegionsResponse 型のポインターを返します。
    // _err: error 型のエラーメッセージを返します。 呼び出し中にエラーが発生した場合、この値は nil ではありません。
    func InvokeApi()(_result *ecs20140526.DescribeRegionsResponse, _err error) {
    	// ECS クライアントを作成します。
    	client, _err := CreateClient()
    	if _err != nil {
    		// クライアントの作成中にエラーが発生した場合は、エラーメッセージを直接返します。
    		return _result, _err
    	}
    
    	// DescribeRegions リクエストを作成します。
    	describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{}
    	// DescribeRegions API を呼び出し、結果を返します。
    	return client.DescribeRegions(describeRegionsRequest)
    }
    
  8. 例外を処理します。

    Alibaba Cloud Go SDK は、標準的な例外処理のためにエラーを返します (例外処理)。 予期せぬ状況では、panicdeferrecover を組み合わせて使用します。 panic は実行を即座に停止します。 defer ブロック内で、recover は panic をキャッチしてプログラムの異常終了を防ぎ、処理の継続を可能にします。

    package main
    
    import (
    	"fmt"
    	"os"
    
    	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    	ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client"
    	"github.com/alibabacloud-go/tea/tea"
    )
    
    // CreateClient は ECS クライアントを初期化して返します。
    // この関数はパラメーターを受け取りませんが、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されている必要があります。
    // return *ecs20140526.Client: ECS クライアントを返します。
    // return error: クライアントの作成中にエラーが発生した場合、nil ではないエラーオブジェクトを返します。
    func CreateClient() (_result *ecs20140526.Client, _err error) {
    	// openapi.Config オブジェクトを初期化して ECS クライアントを設定します。
    	config := &openapi.Config{
    		AccessKeyId:     tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    		AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
    		Endpoint:        tea.String("ecs.cn-hangzhou.aliyuncs.com"),
    	}
    	// 設定を使用して ECS クライアントインスタンスを作成し、返します。
    	return ecs20140526.NewClient(config)
    }
    
    // InvokeApi 関数は、ECS の DescribeRegions API を呼び出して、利用可能なリージョン情報を照会します。
    //
    // 戻り値:
    // _result: 照会されたリージョン情報を含む *ecs20140526.DescribeRegionsResponse 型のポインターを返します。
    // _err: error 型のエラーメッセージを返します。 呼び出し中にエラーが発生した場合、この値は nil ではありません。
    func InvokeApi() (_result *ecs20140526.DescribeRegionsResponse, _err error) {
    	// ECS クライアントを作成します。
    	client, _err := CreateClient()
    	if _err != nil {
    		// クライアントの作成中にエラーが発生した場合は、エラーメッセージを直接返します。
    		return _result, _err
    	}
    
    	// DescribeRegions リクエストを作成します。
    	describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{}
    	// DescribeRegions API を呼び出し、結果を返します。
    	return client.DescribeRegions(describeRegionsRequest)
    }
    
    // この関数は API を呼び出してリージョン情報を取得し、例外発生時に回復して処理します。
    func main() {
    	// defer は、深い再帰や予期せぬエラーなどのシナリオでのみ使用してください。
    	defer func() {
    		if err := tea.Recover(recover()); err != nil {
    			// 例外がキャッチされたら、例外のタイプに基づいて処理します。
    			if sdkError, ok := err.(*tea.SDKError); ok {
    				// SDK のエラーメッセージ、エラーコード、および関連データを表示します。
    				fmt.Println(tea.StringValue(sdkError.Message))
    				fmt.Println(tea.StringValue(sdkError.Code))
    				fmt.Println(tea.StringValue(sdkError.Data))
    			} else {
    				// 他のタイプのエラーメッセージを表示します。
    				fmt.Println(err)
    			}
    		}
    	}()
    	// API を呼び出して結果を取得します。
    	result, _ := InvokeApi()
    	// 結果内のリージョン情報を走査して表示します。
    	for _, region := range result.Body.Regions.Region {
    		fmt.Println("regionId: " + tea.StringValue(region.RegionId))
    	}
    	// RequestId を表示します。
    	fmt.Println("RequestId: " + tea.StringValue(result.Body.RequestId))
    }
    
  9. ターミナルで go run を実行してコードを実行します。

    image

関連ドキュメント

高度なドキュメント