Notas de licencia

El cliente de C# Azure Batch está ahora bajo la licencia MIT. Antes del 10 de marzo de 2017 estaba bajo la licencia de Apache 2.0.

Guía para desarrolladores del SDK de Azure Batch

Microsoft.Azure.Batch.slnes su tienda única para todas las cosas relacionadas con la biblioteca cliente de C# de Azure Batch. Este archivo de solución contiene todos los proyectos afiliados al cliente de Azure Batch (incluidas las pruebas y las herramientas).

Cambio del cliente de Azure Batch

Según el tipo de cambio que desee realizar, el trabajo necesario varía. Si sigue este proceso, no debe perder nada:

  1. Actualice la especificación Azure Batch Swagger, que reside en el repositorio de GitHub Azure/azure-rest-api-specs (específicamente aquí).
    • Agregue nuevos tipos de entidad a la especificación de Swagger.
    • Agregue nuevas API como pares de verbos de ruta de acceso en la especificación de Swagger.
    • Agregue o quite propiedades en los tipos de entidad existentes en la especificación de Swagger.
  2. Vuelva a generar la src\GeneratedProtocol carpeta siguiendo los pasos que se indican a continuación.
  3. Actualice los archivos de especificación de capas de conveniencia correspondientes ubicados en Tools\ObjectModelCodeGenerator\Spec.
    • Agregue nuevas entidades que coincidan con las entidades definidas por Swagger.
    • Agregue o quite propiedades en las entidades existentes, tal como se ha hecho en la especificación de Swagger.
    • Asegúrese de que la documentación se actualice correctamente para reflejar los cambios realizados en la especificación de Swagger (normalmente ayuda a examinar una diferencia de Swagger para la versión de la API en cuestión).
  4. Vuelva a generar la src\Generated carpeta a partir del archivo de especificación de capa conveniente mediante los pasos siguientes.
  5. Agregue cualquier código personalizado en los Generated objetos a partial las clases ubicadas en el src directorio .
    • Es posible que quiera hacerlo para agregar un [Obsolete] atributo o para agregar algunos métodos auxiliares de fábrica.
  6. Si alguna API ha cambiado o si se han agregado nuevas API, debe actualizar los siguientes lugares:
    • La interfaz src\IProtocolLayer.cs.
    • La clase src\ProtocolLayer.cs.
    • La clase de operaciones correspondiente, por ejemplo PoolOperations.cs.
    • Entidad correspondiente en la que se realiza la operación, por ejemplo CloudPool.cs.
  7. Agregue pruebas para los nuevos modelos y API en los proyectos de prueba correctos.
    • Azure.Batch.Unit.Tests para pruebas unitarias. Estas pruebas no tienen dependencias externas (se ejecutan completamente en memoria) y se usan en el trabajo de integración continua para validar las comprobaciones.
    • BatchClientIntegrationTests para pruebas de integración. Estas pruebas se ejecutan en un punto de conexión de Azure Batch activo y no se ejecutan durante la integración continua. Consulte Ejecución de las pruebas de un extremo a otro para obtener más detalles sobre cómo ejecutar estas pruebas.
    • Nota: Debe preferir agregar pruebas unitarias a las pruebas de integración siempre que sea posible: las pruebas de integración deben reservarse para asegurarse de que el servicio Batch acepta las solicitudes de Swagger. La prueba del comportamiento del servicio debe producirse en una prueba de servicio, no en el cliente.
  8. Actualice el CHANGELOG.md archivo y la Version etiqueta en src/Microsoft.Azure.Batch.csproj. Asegúrese de que si está realizando un cambio importante, actualice la versión principal del número de versión.
  9. Ejecute las pruebas y asegúrese de que superan.
  10. Abrir una solicitud de incorporación de cambios en https://github.com/Azure/azure-sdk-for-net

Generación de la src\GeneratedProtocol carpeta mediante AutoRest

La carpeta GeneratedProtocol contiene el código generado por la herramienta AutoRest a partir de una especificación de Swagger. La herramienta AutoRest tiene una interfaz de línea de comandos propia que puede usar directamente o puede ejecutar 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"

Generación de la src\Generated carpeta

Esta carpeta contiene los modelos de capas útiles para Azure Batch. Se genera a partir de una herramienta personalizada. La herramienta personalizada lee todos los archivos de especificación ubicados en Tools\ObjectModelCodeGenerator\Spec. Los modelos de capas útiles requieren más metadatos que la especificación de Swagger, por lo que este archivo es una capa de asignación adicional sobre Swagger, que proporciona más detalles. Nota: Estos archivos de especificación están relacionados con los modelos, no tienen nada que ver con las API reales.

  1. También se deben agregar nuevas entidades definidas en la especificación de Swagger aquí. Consulte una entidad existente para obtener un ejemplo.
  2. Si el tipo o el nombre de una propiedad ha cambiado en la especificación de Swagger subyacente, también debe actualizarse aquí.

Hay una serie de marcas especiales que tienen significado en los archivos de especificación. La manera más fácil de ver una lista de las marcas que se admiten y en qué nivel es examinar el código de generación de código de respaldo:

  1. Para las propiedades: Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\PropertyData.cs
  2. Para los tipos: Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\ObjectModelTypeData.cs

Una vez que haya agregado y actualizado los archivos necesarios en Tools\ObjectModelCodeGenerator\Spec marque como ObjectModelCodeGenerator el proyecto de inicio en Visual Studio y ejecútelo, volverá a generar el contenido de la src\Generated carpeta.

Ejecución de las pruebas de un extremo a otro

Un pase completo de prueba de un extremo a otro tarda entre 20 y 40 minutos. Las siguientes variables de entorno deben establecerse para que las pruebas de un extremo a otro funcionen; se recomienda configurar un script que establezca todo para que se pueda reutilizar fácilmente más adelante:

  1. MABOM_BatchAccountEndpoint: el punto de conexión de la cuenta de Batch, es decir, https://<account>.<region>.batch.azure.com
  2. MABOM_BatchAccountSubscriptionId: el identificador de suscripción en el que se encuentran las cuentas de Batch y Storage. Tenga en cuenta que la cuenta de almacenamiento y la cuenta de Batch deben estar en la misma suscripción.
  3. MABOM_BatchAccountResourceGroupName: el grupo de recursos en el que se encuentra la cuenta de Batch.
  4. MABOM_BatchAccountName: el nombre de la cuenta de Batch.
  5. ​MABOM_BatchAccountKey: la clave de la cuenta de Batch.
  6. MABOM_StorageAccountResourceGroupName: nombre del grupo de recursos de la cuenta de almacenamiento.
  7. MABOM_StorageAccount: el nombre de la cuenta de almacenamiento.
  8. MABOM_StorageKey: la clave de la cuenta de almacenamiento.
  9. MABOM_BlobEndpoint: el punto de conexión de blob de la cuenta de almacenamiento, es decir, . https://<account>.blob.core.windows.net
  10. MABOM_BatchManagementEndpoint: el punto de conexión de administración del inquilino al que se dirige. Normalmente, será https://management.azure.com/.

Si ejecuta las pruebas en un inquilino de prueba, también debe establecer:

  1. MABOM_BatchTRPExtraHeaders to x-ms-version=2015-12-01;x-ms-client-tenant-id=microsoft.onmicrosoft.com
  2. MABOM_BatchTRPCertificateThumbprint: la huella digital que se usa para autenticarse con el proveedor de recursos de Batch.

Impresiones