ライセンス ノート

Azure Batch C# クライアントは MIT ライセンスの下にあります。 2017 年 3 月 10 日より前は、Apache 2.0 ライセンスの下にありました。

Azure Batch SDK 開発者ガイド

Microsoft.Azure.Batch.slnは、Azure Batch C# クライアント ライブラリに関連するすべてのもののためのワンストップ ショップです。 このソリューション ファイルには、Azure Batch クライアントに関連するすべてのプロジェクト (テストとツールを含む) が含まれています。

Azure Batch クライアントの変更

行う変更の種類によって、必要な作業が異なります。 このプロセスに従う場合は、何も見逃すべきではありません。

  1. Azure Batch Swagger 仕様を更新します。これは、Azure/azure-rest-api-specs GitHub リポジトリに存在します (具体的にはこちら)
    • Swagger 仕様に新しいエンティティ型を追加します。
    • Swagger 仕様でパスと動詞のペアとして新しい API を追加します。
    • Swagger 仕様の既存のエンティティ型のプロパティを追加/削除します。
  2. 次の手順を src\GeneratedProtocol 使用して、フォルダーを再生成 します
  3. にある対応する便利なレイヤー仕様ファイルを Tools\ObjectModelCodeGenerator\Spec更新します。
    • Swagger で定義されたエンティティに一致する新しいエンティティを追加します。
    • Swagger 仕様に示されているように、既存のエンティティのプロパティを追加/削除します。
    • Swagger 仕様で行われた変更を反映するようにドキュメントが適切に更新されていることを確認します (通常は、該当する API バージョンの Swagger のdiffを確認するのに役立ちます)。
  4. 次の手順を src\Generated 使用して、便利なレイヤー仕様ファイルからフォルダーを再生成 します
  5. オブジェクトpartialのカスタム コードを Generated ディレクトリ内のクラスにsrc追加します。
    • これを行って属性を追加したり、 [Obsolete] ヘルパー ファクトリ メソッドを追加したりできます。
  6. API が変更された場合、または新しい API が追加された場合は、次の場所を更新する必要があります。
    • src\IProtocolLayer.cs インターフェイスです。
    • src\ProtocolLayer.cs クラスです。
    • 対応する操作クラス (例: PoolOperations.cs)。
    • 操作が実行される対応するエンティティ (例: CloudPool.cs)。
  7. 新しいモデルと API のテストを正しいテスト プロジェクトに追加します。
    • Azure.Batch.Unit.Tests 単体テスト用。 これらのテストには外部依存関係がないため (完全にメモリ内で実行されます)、チェックインを検証するために継続的インテグレーション ジョブで使用されます。
    • BatchClientIntegrationTests 統合テスト用。 これらのテストはライブ Azure Batch エンドポイントに対して実行され、CI 中は実行されません。 これらの テストの実行方法の詳細については、エンド ツー エンド テスト の実行に関するページを参照してください。
    • メモ: 可能な場合は、統合テストに対して単体テストを追加する必要があります。統合テストは、Batch サービスが Swagger 要求を確実に受け入れるようにするために予約する必要があります。 サービス動作のテストは、クライアントではなく、サービス テストで行う必要があります。
  8. CHANGELOG.mdファイルと タグsrc/Microsoft.Azure.Batch.csprojVersion更新します。 破壊的変更を行う場合は、バージョン番号のメジャー バージョンを更新してください。
  9. テストを実行し、合格したことを確認します。
  10. 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 とは関係ありません。

  1. Swagger 仕様で定義されている新しいエンティティもここに追加する必要があります。 例については、既存のエンティティを参照してください。
  2. 基になる Swagger 仕様でプロパティの型または名前が変更された場合は、ここでも更新する必要があります。

仕様ファイルには、意味を持つ特別なフラグが多数あります。 サポートされているフラグの一覧を表示する最も簡単な方法は、バッキング コード生成コードを確認することです。

  1. プロパティの場合: Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\PropertyData.cs
  2. 型の場合: Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\ObjectModelTypeData.cs

で必要なファイル Tools\ObjectModelCodeGenerator\Spec を追加して更新すると、 が Visual Studio のスタートアップ プロジェクトとしてマーク ObjectModelCodeGenerator され、実行されます。フォルダーの内容が src\Generated 再生成されます。

エンド ツー エンド テストの実行

完全なエンドツーエンドのテスト パスには 20 から 40 分かかります。 エンド ツー エンド テストを機能させるには、次の環境変数を設定する必要があります。後で簡単に再利用できるように、これらすべてを設定するスクリプトを設定することをお勧めします。

  1. MABOM_BatchAccountEndpoint: Batch アカウントのエンドポイント (つまり、 https://<account>.<region>.batch.azure.com
  2. MABOM_BatchAccountSubscriptionId: Batch アカウントとストレージ アカウントが存在するサブスクリプション ID。 ストレージ アカウントと Batch アカウントが同じサブスクリプションにある必要があることに注意してください。
  3. MABOM_BatchAccountResourceGroupName: Batch アカウントが含まれているリソース グループ。
  4. MABOM_BatchAccountName: Batch アカウントの名前。
  5. ​MABOM_BatchAccountKey: Batch アカウントのキー。
  6. MABOM_StorageAccountResourceGroupName: ストレージ アカウントのリソース グループの名前。
  7. MABOM_StorageAccount: ストレージ アカウントの名前。
  8. MABOM_StorageKey: ストレージ アカウントのキー。
  9. MABOM_BlobEndpoint: ストレージ アカウントの BLOB エンドポイント (つまり、 https://<account>.blob.core.windows.net
  10. MABOM_BatchManagementEndpoint: 対象とするテナントの管理エンドポイント。 通常、これは になります https://management.azure.com/

テスト テナントに対してテストを実行する場合は、次も設定する必要があります。

  1. MABOM_BatchTRPExtraHeaders to x-ms-version=2015-12-01;x-ms-client-tenant-id=microsoft.onmicrosoft.com
  2. MABOM_BatchTRPCertificateThumbprint: Batch リソース プロバイダーで認証するために使用される拇印。

インプレッション数