ライセンス ノート
Azure Batch C# クライアントは MIT ライセンスの下にあります。 2017 年 3 月 10 日より前は、Apache 2.0 ライセンスの下にありました。
Azure Batch SDK 開発者ガイド
Microsoft.Azure.Batch.sln
は、Azure Batch C# クライアント ライブラリに関連するすべてのもののためのワンストップ ショップです。 このソリューション ファイルには、Azure Batch クライアントに関連するすべてのプロジェクト (テストとツールを含む) が含まれています。
Azure Batch クライアントの変更
行う変更の種類によって、必要な作業が異なります。 このプロセスに従う場合は、何も見逃すべきではありません。
- Azure Batch Swagger 仕様を更新します。これは、Azure/azure-rest-api-specs GitHub リポジトリに存在します (具体的にはこちら)
- Swagger 仕様に新しいエンティティ型を追加します。
- Swagger 仕様でパスと動詞のペアとして新しい API を追加します。
- Swagger 仕様の既存のエンティティ型のプロパティを追加/削除します。
- 次の手順を
src\GeneratedProtocol
使用して、フォルダーを再生成 します。 - にある対応する便利なレイヤー仕様ファイルを
Tools\ObjectModelCodeGenerator\Spec
更新します。- Swagger で定義されたエンティティに一致する新しいエンティティを追加します。
- Swagger 仕様に示されているように、既存のエンティティのプロパティを追加/削除します。
- Swagger 仕様で行われた変更を反映するようにドキュメントが適切に更新されていることを確認します (通常は、該当する API バージョンの Swagger のdiffを確認するのに役立ちます)。
- 次の手順を
src\Generated
使用して、便利なレイヤー仕様ファイルからフォルダーを再生成 します。 - オブジェクト
partial
のカスタム コードをGenerated
ディレクトリ内のクラスにsrc
追加します。- これを行って属性を追加したり、
[Obsolete]
ヘルパー ファクトリ メソッドを追加したりできます。
- これを行って属性を追加したり、
- API が変更された場合、または新しい API が追加された場合は、次の場所を更新する必要があります。
src\IProtocolLayer.cs
インターフェイスです。src\ProtocolLayer.cs
クラスです。- 対応する操作クラス (例:
PoolOperations.cs
)。 - 操作が実行される対応するエンティティ (例:
CloudPool.cs
)。
- 新しいモデルと API のテストを正しいテスト プロジェクトに追加します。
Azure.Batch.Unit.Tests
単体テスト用。 これらのテストには外部依存関係がないため (完全にメモリ内で実行されます)、チェックインを検証するために継続的インテグレーション ジョブで使用されます。BatchClientIntegrationTests
統合テスト用。 これらのテストはライブ Azure Batch エンドポイントに対して実行され、CI 中は実行されません。 これらの テストの実行方法の詳細については、エンド ツー エンド テスト の実行に関するページを参照してください。- メモ: 可能な場合は、統合テストに対して単体テストを追加する必要があります。統合テストは、Batch サービスが Swagger 要求を確実に受け入れるようにするために予約する必要があります。 サービス動作のテストは、クライアントではなく、サービス テストで行う必要があります。
- の
CHANGELOG.md
ファイルと タグsrc/Microsoft.Azure.Batch.csproj
をVersion
更新します。 破壊的変更を行う場合は、バージョン番号のメジャー バージョンを更新してください。 - テストを実行し、合格したことを確認します。
- PR を開き、 https://github.com/Azure/azure-sdk-for-net
AutoRest を src\GeneratedProtocol
使用してフォルダーを生成する
GeneratedProtocol フォルダーには、Swagger 仕様から AutoRest ツールによって生成されたコードが保持されます。 AutoRest ツールには、直接使用できる独自のコマンド ライン インターフェイスがあります。 powershell Start-AutoRestCodeGeneration -ResourceProvider "batch/data-plane" -SdkRepoRootPath "<path to root of this repo>" -AutoRestVersion "latest" -SdkGenerationDirectory "<path to root of this repo>\sdk\batch\Microsoft.Azure.Batch\src\GeneratedProtocol" -ConfigFileTag "package-2020-03.11.0"
フォルダーを生成するsrc\Generated
このフォルダーには、Azure Batchの便利なレイヤー モデルが含まれています。 カスタム ツールから生成されます。 カスタム ツールは、 にあるすべての Tools\ObjectModelCodeGenerator\Spec
仕様ファイルを読み取ります。 便利なレイヤー モデルでは、Swagger 仕様よりも多くのメタデータが必要であるため、このファイルは Swagger 上の追加のマッピング レイヤーであり、より詳細な情報が提供されます。 メモ: これらの仕様ファイルはすべてモデルに関するものです。実際の API とは関係ありません。
- Swagger 仕様で定義されている新しいエンティティもここに追加する必要があります。 例については、既存のエンティティを参照してください。
- 基になる Swagger 仕様でプロパティの型または名前が変更された場合は、ここでも更新する必要があります。
仕様ファイルには、意味を持つ特別なフラグが多数あります。 サポートされているフラグの一覧を表示する最も簡単な方法は、バッキング コード生成コードを確認することです。
- プロパティの場合:
Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\PropertyData.cs
- 型の場合:
Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\ObjectModelTypeData.cs
で必要なファイル Tools\ObjectModelCodeGenerator\Spec
を追加して更新すると、 が Visual Studio のスタートアップ プロジェクトとしてマーク ObjectModelCodeGenerator
され、実行されます。フォルダーの内容が src\Generated
再生成されます。
エンド ツー エンド テストの実行
完全なエンドツーエンドのテスト パスには 20 から 40 分かかります。 エンド ツー エンド テストを機能させるには、次の環境変数を設定する必要があります。後で簡単に再利用できるように、これらすべてを設定するスクリプトを設定することをお勧めします。
MABOM_BatchAccountEndpoint
: Batch アカウントのエンドポイント (つまり、https://<account>.<region>.batch.azure.com
MABOM_BatchAccountSubscriptionId
: Batch アカウントとストレージ アカウントが存在するサブスクリプション ID。 ストレージ アカウントと Batch アカウントが同じサブスクリプションにある必要があることに注意してください。MABOM_BatchAccountResourceGroupName
: Batch アカウントが含まれているリソース グループ。MABOM_BatchAccountName
: Batch アカウントの名前。MABOM_BatchAccountKey
: Batch アカウントのキー。MABOM_StorageAccountResourceGroupName
: ストレージ アカウントのリソース グループの名前。MABOM_StorageAccount
: ストレージ アカウントの名前。MABOM_StorageKey
: ストレージ アカウントのキー。MABOM_BlobEndpoint
: ストレージ アカウントの BLOB エンドポイント (つまり、https://<account>.blob.core.windows.net
MABOM_BatchManagementEndpoint
: 対象とするテナントの管理エンドポイント。 通常、これは になりますhttps://management.azure.com/
。
テスト テナントに対してテストを実行する場合は、次も設定する必要があります。
MABOM_BatchTRPExtraHeaders
to x-ms-version=2015-12-01;x-ms-client-tenant-id=microsoft.onmicrosoft.comMABOM_BatchTRPCertificateThumbprint
: Batch リソース プロバイダーで認証するために使用される拇印。
Azure SDK for .NET