Alibaba Cloud SDK V1.0 for .NET を使用して開発するには、コア SDK と個々の Alibaba Cloud サービスの SDK を依存関係として統合する必要があります。
クラウド製品向け V1.0 SDK の依存関係情報
Alibaba Cloud サービスの V1.0 SDK for .NET は、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
Package Manager
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. クライアントの初期化
SDK V1.0 for .NET では、すべての 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 secret を取得します。
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 secret を取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);
// リクエストオブジェクトを作成します。
DescribeInstancesRequest request = new DescribeInstancesRequest{
RegionId = "<REGION_ID>"
};
// クライアントからリクエストを送信し、結果を Response オブジェクトにデシリアライズします。
DescribeInstancesResponse response = client.GetAcsResponse(request);
System.Console.WriteLine(response.TotalCount);
}
}
}