Alibaba Cloud SDK V1.0 for .NET で開発するには、コア SDK と個々の Alibaba Cloud サービスの SDK を依存関係として追加する必要があります。
クラウド製品の V1.0 SDK 依存関係情報
Alibaba Cloud サービスの V1.0 SDK for .NET は、API オペレーションのリクエストオブジェクトと、API のレスポンスがデシリアライズされたレスポンスオブジェクトを提供します。以下の例は、Elastic Compute Service (ECS) SDK を依存関係として追加する方法を示しています。
.NET CLI
dotnet add package aliyun-net-sdk-ecs
# --version を使用してバージョンを指定します。
dotnet add package aliyun-net-sdk-ecs --version 4.24.18
パッケージマネージャー
Install-Package aliyun-net-sdk-ecs
# -version を使用してバージョンを指定します。
Install-Package aliyun-net-sdk-ecs -Version 4.24.18
PackageReference
<PackageReference Include="aliyun-net-sdk-ecs" Version="4.24.18" />
Paket CLI
paket add aliyun-net-sdk-ecs --version 4.24.18
F# Interactive
#r "nuget: aliyun-net-sdk-ecs, 4.24.18"
V1.0 SDK は、aliyun-net-sdk-${Product name} という命名形式を使用します。特定のクラウド製品の V1.0 SDK の詳細については、「SDK センター」をご参照ください。
コア SDK の依存関係
コア SDK は、OpenAPI への HTTP リクエスト、認証、署名アルゴリズム、例外処理を処理します。次のように依存関係を追加します:
dotnet add package aliyun-net-sdk-core
SDK の使用
1. クライアントの初期化
.NET 向け SDK V1.0 では、すべての Alibaba Cloud サービス SDK が同じコアライブラリを共有します。このコアライブラリを使用して、API リクエストを処理する SDK クライアントを初期化できます。次の例では、クライアントを初期化する方法を示します。初期化メソッドの詳細については、「アクセス資格情報の管理」をご参照ください。
static void Main(string[] args)
{
IClientProfile profile = DefaultProfile.GetProfile(
// リージョン ID。
"<REGION_ID>",
// 環境変数から RAM ユーザーの AccessKey ID を取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 環境変数から RAM ユーザーの AccessKey シークレットを取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);
}
単一の SDK クライアントが複数のスレッドを処理すると、セキュリティの問題が発生する可能性があります。複数の Alibaba Cloud サービスが同じプロファイルを共有すると、不正アクセスが発生する可能性があります。代わりに SDK V2.0 for .NET を使用することを推奨します。
2. リクエストオブジェクトの構築とリクエストの開始
SDK V1.0 for .NET は、コアライブラリを介して API リクエストを送信します。サービス SDK のリクエストオブジェクトを使用してリクエストパラメーターを渡し、初期化されたクライアントを呼び出してリクエストを送信し、レスポンスオブジェクトを受け取ります。以下の例では、ECS SDK を使用して ECS インスタンス情報を照会します:
各 API オペレーションには、独自のリクエストオブジェクトとレスポンスオブジェクトがあります。これらは、次のフォーマットで命名されます:
-
${API}${Request}。 たとえば、リクエストオブジェクトは DescribeInstancesRequest のようになります。
-
${API}${Response}。 たとえば、レスポンスオブジェクトは DescribeInstancesResponse のようになります。
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Ecs.Model.V20140526;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
static void Main(string[] args)
{
IClientProfile profile = DefaultProfile.GetProfile(
// リージョン ID。
"<REGION_ID>",
// 環境変数から RAM ユーザーの AccessKey ID を取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 環境変数から RAM ユーザーの AccessKey シークレットを取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);
// リクエストオブジェクトを作成します。
DescribeInstancesRequest request = new DescribeInstancesRequest{
RegionId = "<REGION_ID>"
};
// クライアントからリクエストを送信し、結果をレスポンスオブジェクトにデシリアライズします。
DescribeInstancesResponse response = client.GetAcsResponse(request);
System.Console.WriteLine(response.TotalCount);
}
}
}