このトピックでは、Alibaba Cloud製品のSDKを使用してAPI操作を呼び出す方法について説明します。
Alibaba Cloud SDK
Alibaba Cloudは、Java、C# 、Go、Python、TypeScript + Node.js、PHP、C ++ などの複数のプログラミング言語でSDKを提供しています。 APIは、アプリケーションに統合されたSDKを介して直接呼び出すことができます。 SDKは、署名ロジック、タイムアウトメカニズム、再試行メカニズムなどの情報をカプセル化します。 仕様に基づいて構造化応答オブジェクトを返し、開発者に利便性を提供します。 詳細については、「Alibaba Cloud APIの概要」をご参照ください。
統合方法
OpenAPI Explorerに移動し、上部のナビゲーションバーの
アイコンをクリックして、使用しているクラウド製品を検索します。
上部のナビゲーションバーで [SDK] をクリックし、使用するプログラミング言語を選択します。
SDKのインストール方法とサンプルコードを確認して、SDKを統合します。
V2.0とV1.0の比較
Alibaba Cloud SDK V2.0は、Alibaba Cloud SDK V1.0よりも多くの言語と、より複雑なAPI操作のシナリオをサポートしています。 V2.0は非同期呼び出しと同期呼び出しの両方をサポートし、元のバージョンのいくつかのレガシー問題を解決し、より柔軟で強力な機能を提供しています。 V2.0を使用することを推奨します。 詳細については、「Alibaba Cloud SDK V1.0とAlibaba Cloud SDK V2.0の違い」をご参照ください。
新しいプロジェクトでは、V2.0を使用することを推奨します。 V1.0が使用されているプロジェクトでは、アップグレードをお勧めします。
統合の例
この例では、ECS SDK for Javaを使用して、Elastic Compute Service (ECS) でDescribeInstance
操作を呼び出します。
V2
V2.0には、パラメーター処理、リクエストアセンブリ、レスポンス処理などのAPI操作に使用される主な情報が含まれています。 開発者は、SDK依存関係パッケージをインストールすることでAPI操作を呼び出すことができ、コアライブラリに依存する必要はありません。
依存関係
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-ecs20140526</artifactId>
<version>2.0.5</version>
</dependency>
サンプルコード
// このファイルは自動生成されます。編集しないでください。 ありがとう
パッケージcom.aliyun.sample;
com.aliyun.teaをインポートします。*;
public class Sample {
/**
* AccessKey IDとAccessKeyシークレットを使用して、クライアントを初期化します。
* @ param accessKeyId
* @ param accessKeySecret
* @ returnクライアント
* @throws Exception
*/
public static com.aliyun.ecs20140526.Client createClient(String accessKeyId, String accessKeySecret) throw Exception {
com.aliyun.teaopenapi.mo dels.Config config = new com.aliyun.teaopenapi.mo dels.Config()
// Required. AccessKey IDを指定します。
. setAccessKeyId(accessKeyId)
// Required. AccessKeyシークレットを指定します。
. setAccessKeySecret(accessKeySecret);
// エンドポイントを指定します。
config.endpoint = "ecs-cn-hangzhou.aliyuncs.com";
新しいcom.aliyun.ecs20140526.Client(config) を返します。
}
public static void main(String[] args_) throws Exception {
java.util.List<String> args = java.util.Arrays.asList(args_);
// 環境変数と環境変数が設定されていることを確認します。
// プロジェクトコードが漏洩すると、AccessKeyペアが漏洩し、アカウントのすべてのリソースでセキュリティの問題が発生する可能性があります。 次のサンプルコードは、操作を呼び出すために環境変数からAccessKeyペアを取得します。 この方法は参考用です。 より高いセキュリティを提供するSTSトークンの使用を推奨します。 認証の詳細については、「https://help.aliyun.com/document_detail/378657.html. 」をご参照ください。
com.aliyun.ecs20140526.Client=Sample.createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
com.aliyun.ecs20140526.mo dels.RunInstancesRequest runInstancesRequest = new com.aliyun.ecs20140526.mo dels.RunInstancesRequest();
com.aliyun.teautil.mo dels.RuntimeOptions runtime = new com.aliyun.teautil.mo dels.RuntimeOptions();
try {
// サンプルコードをコピーして実行した後、操作の戻り値を取得します。
client.ru nInstancesWithOptions(runInstancesRequest、ランタイム);
} catch (TeaExceptionエラー) {
// 必要に応じてエラーを印刷します。
com.aliyun.teautil.Common.assertAsString(error.message);
} catch (例外_エラー) {
TeaExceptionエラー=new TeaException(_error.getMessage(), _error);
// 必要に応じてエラーを印刷します。
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
V1
依存関係のインストール
HTTPリクエスト、認証情報、署名アルゴリズム、および例外処理を含むSDKコアライブラリをインストールする必要があります。
<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>4.24.64</version>
</dependency>
サンプルコード
com.aliyuncs.DefaultAcsClientをインポートします。com.aliyuncs.IAcsClientをインポートします。com.aliyuncs.exceptions.ClientExceptionをインポートします。com.aliyuncs.exceptions.ServerExceptionをインポートします。com.aliyuncs.profile.DefaultProfileをインポートします。java.util.* をインポートします。com.aliyuncs.ecs.mo del.v20140526. * をインポートします。publicクラスDescribeInstances {
public static void main(String[] args) {
// DefaultAcsClientインスタンスを作成して初期化します。
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<yourAccessKeyId>", "<yourAccessSecret>");
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インスタンス: 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());
}
}
}