Compartilhar via


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:

  1. 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.
  2. Regenere a src\GeneratedProtocol pasta usando as etapas abaixo.
  3. 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).
  4. Regenere a src\Generated pasta do arquivo de especificação de camada de conveniência usando as etapas abaixo.
  5. Adicione qualquer código personalizado aos Generated objetos em partial classes localizadas no src diretório .
    • Talvez você queira fazer isso para adicionar um [Obsolete] atributo ou adicionar alguns métodos auxiliares de fábrica.
  6. 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.
  7. 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.
  8. Atualize o CHANGELOG.md arquivo e a Version marca em src/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.
  9. Execute os testes e verifique se eles são aprovados.
  10. 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.

  1. Novas entidades definidas na especificação do Swagger também precisam ser adicionadas aqui. Consulte uma entidade existente para obter um exemplo.
  2. 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:

  1. Para propriedades: Tools\ObjectModelCodeGeneration\CodeGenerationLibrary\PropertyData.cs
  2. 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:

  1. MABOM_BatchAccountEndpoint: o ponto de extremidade da sua conta do Lote, ou seja, https://<account>.<region>.batch.azure.com
  2. 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.
  3. MABOM_BatchAccountResourceGroupName: o grupo de recursos em que sua conta do Lote está.
  4. MABOM_BatchAccountName: o nome da sua conta do Lote.
  5. ​MABOM_BatchAccountKey: a chave da sua conta do Lote.
  6. MABOM_StorageAccountResourceGroupName: o nome do grupo de recursos da sua conta de armazenamento.
  7. MABOM_StorageAccount: o nome da sua conta de armazenamento.
  8. MABOM_StorageKey: a chave para sua conta de armazenamento.
  9. MABOM_BlobEndpoint: o ponto de extremidade de blob para a conta de armazenamento, ou seja, https://<account>.blob.core.windows.net
  10. 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:

  1. MABOM_BatchTRPExtraHeaders to x-ms-version=2015-12-01;x-ms-client-tenant-id=microsoft.onmicrosoft.com
  2. MABOM_BatchTRPCertificateThumbprint: a impressão digital usada para autenticar com o Provedor de Recursos do Lote.

Impressões