Notes de licence
Le client C# Azure Batch est désormais sous licence MIT. Avant le 10 mars 2017, il était sous licence Apache 2.0.
Guide du développeur du SDK Azure Batch
Microsoft.Azure.Batch.sln
est votre guichet unique pour tout ce qui est lié à la bibliothèque cliente C# Azure Batch. Ce fichier de solution contient tous les projets affiliés au client Azure Batch (y compris les tests et les outils).
Modification du client Azure Batch
Selon le type de modification que vous souhaitez apporter, le travail requis varie. Si vous suivez ce processus, vous ne devriez rien manquer :
- Mettez à jour la spécification Swagger Azure Batch, qui réside dans le référentiel GitHub Azure/azure-rest-api-specs (plus précisément ici)
- Ajoutez de nouveaux types d’entités dans la spécification Swagger.
- Ajoutez de nouvelles API en tant que paires chemin-verbe dans la spécification Swagger.
- Ajouter/supprimer des propriétés sur des types d’entités existants dans la spécification Swagger.
- Régénérez le
src\GeneratedProtocol
dossier en suivant les étapes ci-dessous. - Mettez à jour le ou les fichiers de spécification de couche pratique correspondants situés dans
Tools\ObjectModelCodeGenerator\Spec
.- Ajoutez de nouvelles entités qui correspondent aux entités définies par Swagger.
- Ajoutez/supprimez des propriétés sur des entités existantes, comme dans la spécification Swagger.
- Vérifiez que la documentation est correctement mise à jour pour refléter les modifications apportées à la spécification Swagger (il est généralement utile d’examiner un diff de Swagger pour la version de l’API en question).
- Régénérez le
src\Generated
dossier à partir du fichier de spécification de couche pratique en suivant les étapes ci-dessous. - Ajoutez tout code personnalisé sur les
Generated
objets danspartial
des classes situées dans lesrc
répertoire.- Vous pouvez effectuer cette opération pour ajouter un
[Obsolete]
attribut ou ajouter des méthodes de fabrique d’assistance.
- Vous pouvez effectuer cette opération pour ajouter un
- Si des API ont changé ou si de nouvelles API ont été ajoutées, vous devez mettre à jour les emplacements suivants :
- Interface
src\IProtocolLayer.cs
. - La classe
src\ProtocolLayer.cs
. - Classe d’opérations correspondante, par exemple
PoolOperations.cs
. - Entité correspondante sur laquelle l’opération est effectuée, par exemple
CloudPool.cs
.
- Interface
- Ajoutez des tests pour vos nouveaux modèles et API dans les projets de test appropriés.
Azure.Batch.Unit.Tests
pour les tests unitaires. Ces tests n’ont pas de dépendances externes (ils s’exécutent entièrement en mémoire) et sont utilisés dans le travail d’intégration continue pour valider les checkins.BatchClientIntegrationTests
pour les tests d’intégration. Ces tests s’exécutent sur un point de terminaison de Azure Batch en direct et ne s’exécutent pas pendant l’intégration continue. Pour plus d’informations sur l’exécution de ces tests, consultez Exécution des tests de bout en bout.- Note: Vous devez préférer ajouter des tests unitaires à des tests d’intégration dans la cas où cela est possible. Les tests d’intégration doivent être réservés pour vous assurer que le service Batch accepte les demandes Swagger. Le test du comportement du service doit se produire dans un test de service, et non dans le client.
- Mettez à jour le
CHANGELOG.md
fichier et laVersion
balise danssrc/Microsoft.Azure.Batch.csproj
. Assurez-vous que si vous apportez une modification cassant, vous mettez à jour la version principale du numéro de version. - Exécutez les tests et assurez-vous qu’ils réussissent.
- Ouvrez une demande de tirage sur https://github.com/Azure/azure-sdk-for-net
Générer le dossier à l’aide src\GeneratedProtocol
d’AutoRest
Le dossier GeneratedProtocol contient le code généré par l’outil AutoRest à partir d’une spécification Swagger. L’outil AutoRest dispose d’une interface de ligne de commande qui lui est propre, que vous pouvez utiliser directement ou que vous pouvez exécuter 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"
Générer le src\Generated
dossier
Ce dossier contient les modèles de couche pratique pour Azure Batch. Il est généré à partir d’un outil personnalisé. L’outil personnalisé lit tous les fichiers de spécification situés dans Tools\ObjectModelCodeGenerator\Spec
. Les modèles de couche pratique nécessitent plus de métadonnées que la spécification Swagger, de sorte que ce fichier est une couche de mappage supplémentaire par-dessus Swagger, qui fournit plus de détails. Note: Ces fichiers de spécification concernent tous les modèles, ils n’ont rien à voir avec les API réelles.
- De nouvelles entités définies dans la spécification Swagger doivent également être ajoutées ici. Consultez une entité existante pour obtenir un exemple.
- Si le type ou le nom d’une propriété a changé dans la spécification Swagger sous-jacente, il doit également être mis à jour ici.
Il existe un certain nombre d’indicateurs spéciaux qui ont une signification dans les fichiers de spécification. Le moyen le plus simple d’afficher une liste des indicateurs pris en charge et à quel niveau consiste à examiner le code de génération de code de stockage :
- Pour les propriétés :
Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\PropertyData.cs
- Pour les types :
Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\ObjectModelTypeData.cs
Une fois que vous avez ajouté et mis à jour les fichiers requis dans Tools\ObjectModelCodeGenerator\Spec
marquer comme ObjectModelCodeGenerator
votre projet de démarrage dans Visual Studio et l’exécuter, il régénère le contenu du src\Generated
dossier.
Exécution des tests de bout en bout
Un test complet prend 20 à 40 minutes. Les variables d’environnement suivantes doivent être définies pour que les tests de bout en bout fonctionnent. Il est recommandé de configurer un script qui les définit toutes afin qu’elles puissent facilement être réutilisées ultérieurement :
MABOM_BatchAccountEndpoint
: point de terminaison de votre compte Batch, c’est-à-direhttps://<account>.<region>.batch.azure.com
MABOM_BatchAccountSubscriptionId
: ID d’abonnement dans lequel se trouvent vos comptes Batch et Stockage. Notez que votre compte de stockage et votre compte Batch doivent se trouver dans le même abonnement.MABOM_BatchAccountResourceGroupName
: groupe de ressources dans lequel se trouve votre compte Batch.MABOM_BatchAccountName
: nom de votre compte Batch.MABOM_BatchAccountKey
: clé de votre compte Batch.MABOM_StorageAccountResourceGroupName
: nom du groupe de ressources de votre compte de stockage.MABOM_StorageAccount
: nom de votre compte de stockage.MABOM_StorageKey
: clé de votre compte de stockage.MABOM_BlobEndpoint
: point de terminaison d’objet blob pour le compte de stockage, c’est-à-direhttps://<account>.blob.core.windows.net
MABOM_BatchManagementEndpoint
: point de terminaison de gestion pour le locataire que vous ciblez. Il s’agit généralement dehttps://management.azure.com/
.
Si vous exécutez les tests sur un locataire de test, vous devez également définir :
MABOM_BatchTRPExtraHeaders
à x-ms-version=2015-12-01;x-ms-client-tenant-id=microsoft.onmicrosoft.comMABOM_BatchTRPCertificateThumbprint
: empreinte utilisée pour l’authentification auprès du fournisseur de ressources Batch.
Azure SDK for .NET