Partilhar via


Manifesto da carga de trabalho

Descrição geral

Os WorkloadManifest.xml arquivos e Item.xml são necessários para a definição da carga de trabalho no Fabric. Eles mantêm as definições básicas de configuração de Workload e Workload Items para configuração e atuam como um guia para configuração e gerenciamento de carga de trabalho, ajudando a definir, compartilhar e registrar detalhes essenciais da carga de trabalho para uma integração suave no Fabric.

Em nosso repositório de exemplo, um .nupkg arquivo é gerado a partir dos arquivos XML localizados na pasta durante o src/Packages/manifest processo de compilação. Este arquivo empacotado contém todas as informações necessárias sobre sua carga de trabalho. workload-dev-mode.json No arquivo, há um campo chamado ManifestPackageFilePath que deve apontar para esse arquivo recém-criado.nupkg.

Processo de Upload e Registo

  1. Autenticação do usuário: Durante o desenvolvimento, uma vez executado o exemplo, sua autenticação inicia o processo de upload e registro. Isso garante a associação correta da carga de trabalho com sua identidade.
  2. Análise de manifesto: O manifesto carregado passa por análise para validar sua estrutura e conteúdo. Esta etapa garante que o manifesto esteja formatado corretamente e pronto para processamento posterior.
  3. Registro de carga de trabalho: se a análise for bem-sucedida, a carga de trabalho será registrada no Fabric. Detalhes essenciais de configuração, como o ID da carga de trabalho, são armazenados no banco de dados Fabric, permitindo um gerenciamento eficaz da carga de trabalho.

Manifesto da carga de trabalho - Principais componentes do manifesto

O manifesto, cuja estrutura é definida por WorkloadDefinition.xsd, descreve os principais atributos de uma carga de trabalho, como nome, aplicativo e pontos de extremidade.

Atributo SchemaVersion

Representa a versão publicada do Fabric WorkloadDefinition.xsd.

Atributo WorkloadName

O identificador exclusivo da sua carga de trabalho. Note que é necessário ter uma 'Org'. prefixo para workloadName tal que o nome consiste em duas palavras com separador '.' , por exemplo, 'Org.MyWorkload'. Outros prefixos são inválidos e causarão uma falha de carregamento. Isso será aplicado nos seguintes cenários - conexão de desenvolvimento, upload de teste.

Elemento Version

A versão do seu manifesto deve ser compatível com o SemVer .

Elemento CloudServiceConfiguration

A configuração de serviço da sua carga de trabalho, atualmente apenas uma configuração é suportada.

Configuração do aplicativo Microsoft Entra ID [Azure Ative Directory (AAD)]

A <AADApp> seção configura o aplicativo Microsoft Entra ID [Azure Ative Directory (AAD)] para processos de autenticação e autorização. O AppId representa o identificador exclusivo do seu aplicativo, especifica RedirectUri o URI para o qual o ID do Microsoft Entra enviará a resposta de autenticação e aponta ResourceId para o identificador exclusivo do recurso que o aplicativo está acessando. Para obter mais contexto sobre o que ResourceId, AppIde RedirectUri representam, você pode consultar a documentação de autenticação.

<AADApp>
    <AppId>YourApplicationId</AppId>
    <RedirectUri>YourRedirectUri</RedirectUri>
    <ResourceId>YourResourceId</ResourceId>
</AADApp>

Consulte a documentação de autenticação para obter uma compreensão mais profunda de AppId, ResourceIde RedirectUri sua importância no contexto dos processos de autenticação.

Elementos ServiceEndpoint

Representar a configuração de um ponto de extremidade lógico específico, por exemplo, o ponto de extremidade de back-end que inclui implementação para CRUD de objeto e APIs de tarefas.

  • A configuração do ponto de extremidade de back-end da carga de trabalho indica a URL de back-end da sua carga de trabalho.
<ServiceEndpoint>
    <Name>Workload</Name>
    <Url>YourWorkloadBackendUrl</Url>
    <IsEndpointResolutionService>...
    <EndpointResolutionContext>...
</ServiceEndpoint>
  • <IsEndpointResolutionService> e <EndpointResolutionContext> são definidos com base no fato de seu endpoint implementar a API de carga de trabalho ou apenas a resolução do ponto de extremidade.
  • O ponto de extremidade resolvido que é retornado do serviço deve cumprir os seguintes requisitos:
    • O domínio do ponto de extremidade resolvido deve corresponder ao domínio do ID do recurso encontrado no WorkloadManifest.xml.
    • A URL do ponto de extremidade resolvido pode ter até seis subdomínios extras antes do domínio principal.
    • Qualquer subdomínio após o primeiro segmento deve pertencer à lista de domínios verificados do tenant do editor.

Exemplo

URL de ID do recurso:https://contoso.com/fe/be/Org.WorkloadSample (onde o domínio é contoso.com)

Domínios verificados no tenant:contoso.com, be.contoso.com, eastus.be.contoso.com

Pontos de extremidade válidos resolvidos:

  • api.eastus.be.contoso.com
  • be.contoso.com
  • api.be.contoso.com

Pontos finais resolvidos inválidos:

  • api.eastus.fe.contoso.com (inválido porque eastus.fe.contoso.com não é um domínio verificado)
  • contoso-dev.com (inválido porque contoso-dev.com não é um domínio verificado e também não corresponde ao domínio principal do ID do recurso)

Nota

Não há suporte para resolução de ponto final para Frontend.

Manifesto do Item - Principais Componentes do Manifesto

O manifesto, cuja estrutura é definida por ItemDefinition.xsd, descreve os principais atributos do item de uma carga de trabalho, como definições de nome e tarefa.

Atributo SchemaVersion

Representa a versão publicada ItemDefinition.xsd do Fabric.

Atributo TypeName

O identificador exclusivo do seu item.

Configuração do Agendador de Tarefas

A <JobScheduler> seção engloba vários elementos que definem o comportamento e as configurações de agendamento, acompanhamento e gerenciamento de tarefas.

  • <OnDemandJobDeduplicateOptions> e <ScheduledJobDeduplicateOptions>: Definir opções de desduplicação para trabalhos de item sob demanda e agendados, respectivamente. As opções incluem None (sem desduplicação), PerItem (uma execução de trabalho para o mesmo item e tipo de trabalho) e PerUser (uma execução de trabalho para o mesmo usuário e item).
  • <ItemJobTypes>: Contém configurações para diferentes tipos de trabalho de item.
  • <ItemJobType>: Descreve um tipo de trabalho específico.
  • <Name>: O nome do tipo de trabalho. Deve usar o nome do item como um prefixo.

Por exemplo, vamos considerar nossa carga de trabalho de exemplo, que inclui três trabalhos específicos definidos na <ItemJobTypes> seção:

<JobScheduler>
    <OnDemandJobDeduplicateOptions>PerItem</OnDemandJobDeduplicateOptions>
    <ScheduledJobDeduplicateOptions>PerItem</ScheduledJobDeduplicateOptions>
    <ItemJobTypes>
    <ItemJobType Name="Org.WorkloadSample.SampleWorkloadItem.ScheduledJob" />
    <ItemJobType Name="Org.WorkloadSample.SampleWorkloadItem.CalculateAsText" />
    <ItemJobType Name="Org.WorkloadSample.SampleWorkloadItem.CalculateAsParquet" />
    </ItemJobTypes>
</JobScheduler>
  • Trabalho CalculateAsText : Este tipo de trabalho lida com cálculos baseados em texto, tomando Operand1 e Operand2executando a operação selecionada e salvando o resultado na casa do lago.
  • CalculateAsParquet Job : Especificamente adaptado para trabalhar com dados do Parquet, este tipo de trabalho também leva Operand1 e Operand2, executa a operação selecionada, e armazena o resultado na casa do lago, seguindo o formato de dados Parquet. Consulte o guia do hub de monitoramento para obter mais informações sobre trabalhos e configuração relacionada.

Em resumo, os Manifestos de Carga de Trabalho e de Item servem como documentos fundamentais para adicionar cargas de trabalho personalizadas ao Fabric. O processo de autenticação dispara uma sequência direta de ações: upload, análise e registro, garantindo a configuração adequada e o gerenciamento eficiente da carga de trabalho dentro do ecossistema do Azure.