開発に .NET 向け Alibaba Cloud SDK V1.0 を使用する場合、Core SDK と Alibaba Cloud サービスの SDK を依存関係として正しく統合する必要があります。このトピックでは、これらの依存関係を構成および管理する方法について説明します。
Alibaba Cloud サービスの .NET 向け SDK V1.0 を依存関係として構成する
Alibaba Cloud サービスの .NET 向け SDK V1.0 は、API 操作のリクエストオブジェクトとレスポンスオブジェクト、および返される値をシリアル化するために使用されるアンマーシャラーオブジェクトを提供します。次のサンプルコードは、Elastic Compute Service (ECS) の .NET 向け SDK V1.0 を依存関係として構成する方法を示しています。
.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.18PackageReference
<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"
Alibaba Cloud サービスの .NET 向け SDK V1.0 は、aliyun-net-sdk-${サービス名} の形式で命名されます。また、SDK センター にアクセスして、特定のクラウドサービスの SDK V1.0 に関する情報を照会することもできます。
Core SDK を依存関係として構成する
Core SDK には、HTTP ベースの API リクエスト、認証情報、署名アルゴリズム、および例外処理のロジックが含まれています。次のサンプルコードは、Core SDK を依存関係として構成する方法を示しています。
dotnet add package aliyun-net-sdk-coreSDK の使用
1. クライアントを初期化する
.NET 向け SDK V1.0 では、すべての Alibaba Cloud サービスの SDK が同じコアライブラリを共有します。したがって、コアライブラリで提供されているメソッドを使用して SDK クライアントを初期化し、Alibaba Cloud サービスにアクセスするための API リクエストを処理できます。次のサンプルコードは、.NET 向け SDK V1.0 のクライアントを初期化する方法を示しています。クライアントの初期化方法の詳細については、「アクセス認証情報を管理する」をご参照ください。
static void Main(string[] args)
{
IClientProfile profile = DefaultProfile.GetProfile(
// リージョン ID を指定します。
"<REGION_ID>",
// 環境変数から Resource Access Management (RAM) ユーザーの AccessKey ID を取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 環境変数から RAM ユーザーの AccessKey シークレットを取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);
}1 つの SDK クライアントが複数のスレッドを処理する場合、セキュリティの問題が発生する可能性があります。複数の Alibaba Cloud サービスが同じプロファイル情報を共有する場合、不正アクセスが発生する可能性があります。開発には .NET 向け SDK V2.0 を使用することをお勧めします。
2. リクエストオブジェクトを構築し、リクエストを開始する
.NET 向け SDK V1.0 は、コアライブラリを使用して API リクエストを開始します。クラウドサービスの SDK によって提供されるリクエストオブジェクトを使用してリクエストパラメータを渡し、初期化されたクライアントを使用してリクエストを開始できます。このようにして、レスポンスパラメータを受信するために使用されるレスポンスオブジェクトが返されます。次のサンプルコードは、ECS の .NET 向け SDK V1.0 を使用して ECS の API 操作を呼び出し、1 つ以上の 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);
}
}
}