Notas de licença
O Lote do Azure cliente C# agora está sob a licença MIT. Antes de 10 de março de 2017, ele estava sob a licença do Apache 2.0.
Guia do desenvolvedor do SDK do Lote do Azure
Microsoft.Azure.Batch.sln
é sua única parada de compra para todas as coisas relacionadas à biblioteca de clientes do Lote do Azure C#. Esse arquivo de solução contém todos os projetos afiliados ao cliente Lote do Azure (incluindo teste e ferramentas).
Alterando o cliente Lote do Azure
Dependendo do tipo de alteração que você deseja fazer, o trabalho necessário varia. Se você seguir esse processo, não deverá perder nada:
- Atualize a especificação do Lote do Azure Swagger, que reside no repositório GitHub Azure/azure-rest-api-specs (especificamente aqui)
- Adicione novos tipos de entidade à especificação do Swagger.
- Adicione novas APIs como pares de verbo de caminho na especificação do Swagger.
- Adicione/remova propriedades em tipos de entidade existentes na especificação do Swagger.
- Regenere a
src\GeneratedProtocol
pasta usando as etapas abaixo. - Atualize os arquivos de especificação de camada de conveniência correspondentes localizados em
Tools\ObjectModelCodeGenerator\Spec
.- Adicione novas entidades que correspondam às entidades definidas pelo Swagger.
- Adicione/remova propriedades em entidades existentes, conforme feito na especificação do Swagger.
- Verifique se a documentação está atualizada corretamente para refletir as alterações feitas na especificação do Swagger (geralmente ajuda a examinar uma diferença do Swagger para a versão da API em questão).
- Regenere a
src\Generated
pasta do arquivo de especificação de camada de conveniência usando as etapas abaixo. - Adicione qualquer código personalizado aos
Generated
objetos empartial
classes localizadas nosrc
diretório .- Talvez você queira fazer isso para adicionar um
[Obsolete]
atributo ou adicionar alguns métodos auxiliares de fábrica.
- Talvez você queira fazer isso para adicionar um
- Se alguma APIs tiver sido alterada ou se novas APIs tiverem sido adicionadas, você deverá atualizar os seguintes locais:
- A interface
src\IProtocolLayer.cs
. - A classe
src\ProtocolLayer.cs
. - A classe de operações correspondente, por exemplo
PoolOperations.cs
, . - A entidade correspondente na qual a operação é executada, por exemplo
CloudPool.cs
.
- A interface
- Adicione testes para seus novos modelos e APIs nos projetos de teste corretos.
Azure.Batch.Unit.Tests
para testes de unidade. Esses testes não têm dependências externas (são executados inteiramente na memória) e são usados no trabalho de integração contínua para validar check-ins.BatchClientIntegrationTests
para testes de integração. Esses testes são executados em um ponto de extremidade de Lote do Azure dinâmico e não são executados durante a CI. Consulte executando os testes de ponta a ponta para obter mais detalhes sobre como executar esses testes.- Nota: Você deve preferir adicionar testes de unidade em vez de testes de integração sempre que possível – os testes de integração devem ser reservados para garantir que o Serviço de Lote aceite as solicitações do Swagger. O comportamento do serviço de teste deve ocorrer em um teste de serviço, não no cliente.
- Atualize o
CHANGELOG.md
arquivo e aVersion
marca emsrc/Microsoft.Azure.Batch.csproj
. Certifique-se de que, se você estiver fazendo uma alteração interruptiva, atualize a versão principal do número de versão. - Execute os testes e verifique se eles são aprovados.
- Abrir uma PR para https://github.com/Azure/azure-sdk-for-net
Gerar a src\GeneratedProtocol
pasta usando AutoRest
A pasta GeneratedProtocol contém o código gerado pela ferramenta AutoRest de uma especificação do Swagger. A ferramenta AutoRest tem uma interface de linha de comando própria que você pode usar diretamente ou você pode executar 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"
Gerar a src\Generated
pasta
Essa pasta contém os modelos de camada de conveniência para Lote do Azure. Ele é gerado a partir de uma ferramenta personalizada. A ferramenta personalizada lê todos os arquivos de especificação localizados em Tools\ObjectModelCodeGenerator\Spec
. Os modelos de camada de conveniência exigem mais metadados do que a especificação do Swagger fornece, portanto, esse arquivo é uma camada de mapeamento extra sobre o Swagger que fornece mais detalhes. Nota: Esses arquivos de especificação são todos sobre os modelos, eles não têm nada a ver com as APIs reais.
- Novas entidades definidas na especificação do Swagger também precisam ser adicionadas aqui. Consulte uma entidade existente para obter um exemplo.
- Se o tipo ou o nome de uma propriedade tiver sido alterado na especificação do Swagger subjacente, ele também deverá ser atualizado aqui.
Há vários sinalizadores especiais que têm significado nos arquivos de especificação. A maneira mais fácil de ver uma lista de quais sinalizadores têm suporte e em que nível é examinar o código de geração de código de suporte:
- Para propriedades:
Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\PropertyData.cs
- Para tipos:
Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\ObjectModelTypeData.cs
Depois de adicionar e atualizar os arquivos necessários em Tools\ObjectModelCodeGenerator\Spec
marcar o ObjectModelCodeGenerator
como seu projeto de inicialização no Visual Studio e executá-lo , ele regenerará o conteúdo da src\Generated
pasta.
Executando os testes de ponta a ponta
Um teste completo de ponta a ponta leva de 20 a 40 minutos. As seguintes variáveis de ambiente devem ser definidas para que os testes de ponta a ponta funcionem. É recomendável configurar um script que define tudo isso para que ele possa ser reutilizado mais tarde:
MABOM_BatchAccountEndpoint
: o ponto de extremidade da sua conta do Lote, ou seja,https://<account>.<region>.batch.azure.com
MABOM_BatchAccountSubscriptionId
: a ID da assinatura em que as contas do Lote e do Armazenamento estão. Observe que sua conta de armazenamento e sua conta do Lote precisam estar na mesma assinatura.MABOM_BatchAccountResourceGroupName
: o grupo de recursos em que sua conta do Lote está.MABOM_BatchAccountName
: o nome da sua conta do Lote.MABOM_BatchAccountKey
: a chave da sua conta do Lote.MABOM_StorageAccountResourceGroupName
: o nome do grupo de recursos da sua conta de armazenamento.MABOM_StorageAccount
: o nome da sua conta de armazenamento.MABOM_StorageKey
: a chave para sua conta de armazenamento.MABOM_BlobEndpoint
: o ponto de extremidade de blob para a conta de armazenamento, ou seja,https://<account>.blob.core.windows.net
MABOM_BatchManagementEndpoint
: o ponto de extremidade de gerenciamento para o locatário que você está direcionando. Isso geralmente seráhttps://management.azure.com/
.
Se estiver executando os testes em um locatário de teste, você também deverá definir:
MABOM_BatchTRPExtraHeaders
to x-ms-version=2015-12-01;x-ms-client-tenant-id=microsoft.onmicrosoft.comMABOM_BatchTRPCertificateThumbprint
: a impressão digital usada para autenticar com o Provedor de Recursos do Lote.
Azure SDK for .NET