このトピックでは、Alibaba Cloud サービスの SDK を使用して API 操作を呼び出す方法について説明します。
Alibaba Cloud SDK
Alibaba Cloud は、Java、C#、Go、Python、TypeScript + Node.js、PHP、C++ などの複数のプログラミング言語で SDK を提供しています。 API 操作は、アプリケーションに統合された SDK を介して直接呼び出すことができます。 SDK は、署名ロジック、タイムアウトメカニズム、リトライメカニズムなどの情報をカプセル化し、仕様に基づいて構造化されたレスポンスオブジェクトを返します。これにより、開発者は利便性を享受できます。
Alibaba Cloud SDK の詳細については、「Alibaba Cloud SDK」をご参照ください。
統合方法
OpenAPI Explorer にアクセスします。トップナビゲーションバーの
にポインターを移動し、必要なサービスを見つけます。[SDK の例] セクションで、使用するプログラミング言語をクリックします。
SDK のインストール方法とサンプルコードを表示して、SDK を統合します。
V2.0 と V1.0 の比較
Alibaba Cloud SDK V2.0 は、Alibaba Cloud SDK V1.0 よりも多くの言語と、より複雑な API 操作のシナリオをサポートしています。 V2.0 は非同期呼び出しと同期呼び出しの両方をサポートし、V1.0 のいくつかのレガシーな問題を解決しています。 V2.0 は、より柔軟で強力な機能を提供します。 Alibaba Cloud SDK V2.0 を使用することをお勧めします。詳細については、「Alibaba Cloud SDK V1.0 および V2.0」をご参照ください。
新しいプロジェクトの場合は、V2.0 を使用することをお勧めします。 V1.0 が使用されているプロジェクトの場合は、V1.0 を V2.0 にアップグレードすることをお勧めします。
統合例
この例では、Java 用の Elastic Compute Service (ECS) SDK を統合し、DescribeInstance 操作を呼び出すために使用します。
V2.0
Alibaba Cloud SDK V2.0 には、パラメーター処理、リクエストアセンブリ、レスポンス処理など、API 操作に使用される主要な情報が含まれています。 開発者は、SDK 依存関係パッケージをインストールすることで API 操作を呼び出すことができ、コアライブラリに依存する必要はありません。
依存関係
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>ecs20140526</artifactId>
<version>5.1.0</version>
</dependency>サンプルコード
// このファイルは自動生成されています。編集しないでください。ありがとうございます。
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
public static com.aliyun.ecs20140526.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必須。AccessKey ID を指定します。
.setAccessKeyId(accessKeyId)
// 必須。AccessKey シークレットを指定します。
.setAccessKeySecret(accessKeySecret);
// エンドポイントを指定します。
config.endpoint = "ecs-cn-hangzhou.aliyuncs.com";
return new com.aliyun.ecs20140526.Client(config);
}
public static void main(String[] args_) throws Exception {
java.util.List<String> args = java.util.Arrays.asList(args_);
// ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認します。
// プロジェクトコードが漏洩した場合、AccessKey ペアが公開され、アカウント内のリソースのセキュリティが損なわれる可能性があります。次のサンプルコードは、環境変数から AccessKey ペアを取得します。この例は参照用です。より安全な Security Token Service (STS) を使用して SDK クライアントを初期化することをお勧めします。認証ソリューションの詳細については、Alibaba Cloud SDK for Java の「アクセス認証情報の管理」トピックを参照してください。
com.aliyun.ecs20140526.Client client = Sample.createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
com.aliyun.ecs20140526.models.RunInstancesRequest runInstancesRequest = new com.aliyun.ecs20140526.models.RunInstancesRequest();
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
try {
// サンプルコードをコピーして実行する場合は、API 操作のレスポンスを表示するための独自のコードを記述します。
client.runInstancesWithOptions(runInstancesRequest, runtime);
} catch (TeaException error) {
// ビジネス要件に基づいてエラーを表示します。
com.aliyun.teautil.Common.assertAsString(error.message);
} catch (Exception _error) {
TeaException error = new TeaException(_error.getMessage(), _error);
// ビジネス要件に基づいてエラーを表示します。
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
V1.0
依存関係
SDK コアライブラリをインストールする必要があります。これには、HTTP リクエスト、認証情報、署名アルゴリズム、例外処理が含まれます。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.1</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>5.11.5</version>
</dependency>サンプルコード
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import java.util.*;
import com.aliyuncs.ecs.model.v20140526.*;
public class DescribeInstances {
public static void main(String[] args) {
// DefaultAcsClient インスタンスを作成して初期化します。
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
// API リクエストを作成し、必要なパラメーターを設定します。
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.setRegionId("cn-hangzhou");
request.setInstanceNetworkType("vpc");
request.setInstanceChargeType("PostPaid");
request.setInternetChargeType("PayByTraffic");
request.setPageSize(10);
try {
// リクエストを開始し、レスポンスまたは例外を処理します。
DescribeInstancesResponse response = client.getAcsResponse(request);
for (DescribeInstancesResponse.Instance instance:response.getInstances())
{
System.out.println(instance.getImageId());
System.out.println(instance.getInstanceId());
System.out.println(instance.getPublicIpAddress());
}
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}