Partilhar via


Desenvolver um plug-in de gateway

O plug-in de gateway do Windows Admin Center permite a comunicação de API da interface de utilizador da sua ferramenta ou solução para um nó de destino. O Windows Admin Center hospeda um serviço de gateway que retransmite comandos e scripts de plug-ins de gateway para serem executados em nós de destino. O serviço de gateway pode ser estendido para incluir plug-ins de gateway personalizados que suportam protocolos diferentes dos padrão.

Esses plug-ins de gateway estão incluídos por padrão no Windows Admin Center:

  • Plug-in de Gateway do PowerShell
  • Plug-in de gateway WMI (Instrumentação de Gerenciamento do Windows)

Se você quiser se comunicar com um protocolo diferente do PowerShell ou WMI, como com REST, você pode criar seu próprio plug-in de gateway. Os plug-ins de gateway são carregados em um AppDomain separado do processo de gateway existente, mas usam o mesmo nível de elevação para direitos.

Observação

Não está familiarizado com os diferentes tipos de extensão? Saiba mais sobre a arquitetura de extensibilidade e os tipos de extensão.

Importante

O SDK do Windows Admin Center e as ferramentas de desenvolvedor ainda não foram atualizados para dar suporte ao desenvolvimento de plug-ins de gateway compatíveis com o gateway modernizado do Windows Admin Center. Seguir este guia não resultará em uma extensão .NET 8 compatível com o gateway modernizado.

Se você estiver interessado em desenvolver um plug-in de gateway para o gateway modernizado ou atualizar seu plug-in de gateway existente, envie um e-mail para wacextensionrequest@microsoft.com.

Os plug-ins de gateway desenvolvidos no .NET 6 enquanto a atualização de back-end estava em visualização podem não funcionar corretamente com a versão mais recente do Windows Admin Center devido a alterações recentes do .NET 6 para o .NET 8. Recomendamos atualizar sua extensão para o .NET 8 o mais rápido possível.

Prepare seu ambiente

Se ainda não o fez, prepare o seu ambiente instalando as dependências e os pré-requisitos globais necessários para todos os projetos.

Criar um plug-in de gateway (biblioteca C#)

Para criar um plug-in de gateway personalizado, crie uma nova classe C# que implemente a interface IPlugIn a partir do namespace Microsoft.ManagementExperience.FeatureInterfaces.

Observação

A interface IFeature, disponível em versões anteriores do SDK, agora está sinalizada como obsoleta. Todo o desenvolvimento de plug-ins de gateway deve usar IPlugIn (ou, opcionalmente, a classe abstrata HttpPlugIn).

Exemplo de download do GitHub

Para começar rapidamente com um plug-in de gateway personalizado, você pode clonar ou baixar uma cópia do nosso de projeto de plug-in C# de exemplo de em nosso SDK do Windows Admin Center site do GitHub,.

Adicionar conteúdo

Adicione novo conteúdo à sua cópia clonada do projeto de exemplo de plug-in C# (ou ao seu próprio projeto) para conter as suas APIs personalizadas. Em seguida, crie o seu arquivo DLL de plug-in de gateway personalizado para ser usado nas próximas etapas.

Implantar plugin para testes

Teste a sua DLL de plug-in de gateway personalizada carregando-a no processo de gateway do Windows Admin Center.

O Windows Admin Center procura todos os plug-ins em uma pasta plugins na pasta Application Data da máquina atual (usando o valor CommonApplicationData da enumeração Environment.SpecialFolder). No Windows 10, esse local é C:\ProgramData\Server Management Experience. Se a pasta plugins ainda não existir, você mesmo poderá criá-la.

Observação

Você pode substituir o local do plug-in em uma compilação de depuração atualizando o valor de configuração "StaticsFolder". Se estiveres a depurar localmente, esta configuração estará no App.Config da solução de ambiente de trabalho.

Dentro da pasta plugins (neste exemplo, C:\ProgramData\Server Management Experience\plugins)

  • Crie uma nova pasta com o mesmo nome que o valor da propriedade Name do Feature em sua DLL de plug-in de gateway personalizado (em nosso projeto de exemplo, o Name é "Sample Uno")
  • Copie o arquivo DLL do plugin de gateway personalizado para esta nova pasta
  • Reinicie o processo do Windows Admin Center

Depois de o processo de administração do Windows reiniciar, poderá utilizar as APIs na DLL do seu plug-in de gateway personalizado, emitindo um GET, PUT, PATCH, DELETE ou POST para http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}

Opcional: Anexar ao plugin para depuração

No Visual Studio 2017, no menu Depurar, selecione "Anexar ao processo". Na janela seguinte, percorra a lista Processos Disponíveis e selecione SMEDesktop.exee, em seguida, selecione "Anexar". Depois que o depurador for iniciado, você poderá colocar um ponto de interrupção no código do recurso e, em seguida, exercitar através do formato URL. Para o nosso projeto de exemplo (nome do recurso: "Sample Uno") o URL é: "<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"

Criar uma extensão de ferramenta com o SDK do Windows Admin Center

Agora precisamos criar uma extensão de ferramenta a partir da qual você pode chamar seu plug-in de gateway personalizado. Crie ou navegue até uma pasta onde você deseja armazenar seus arquivos de projeto, abra um prompt de comando e defina essa pasta como o diretório de trabalho. Usando o SDK do Windows Admin Center instalado anteriormente, crie uma nova extensão com a seguinte sintaxe:

wac create --company "{!Company Name}" --tool "{!Tool Name}"
Valor Explicação Exemplo
{!Company Name} Nome da sua empresa (com espaços) Contoso Inc
{!Tool Name} O nome da sua ferramenta (com espaços) Manage Foo Works

Aqui está um exemplo de uso:

wac create --company "Contoso Inc" --tool "Manage Foo Works"

Este comando cria uma nova pasta dentro do diretório de trabalho atual usando o nome especificado para sua ferramenta, copia todos os arquivos de modelo necessários para seu projeto e configura os arquivos com o nome da empresa e da ferramenta.

Em seguida, altere o diretório para a pasta e, em seguida, instale as dependências locais necessárias executando o seguinte comando:

npm install

Quando esse comando for concluído, você estará configurado com tudo o que precisa para carregar sua nova extensão no Windows Admin Center.

Conecte sua extensão de ferramenta ao plug-in de gateway personalizado

Agora que você criou uma extensão com o SDK do Windows Admin Center, está pronto para conectar sua extensão de ferramenta ao plug-in de gateway personalizado, seguindo estas etapas:

Construa e instale em modo de desenvolvedor a sua extensão

Em seguida, crie e carregue lateralmente sua extensão no Windows Admin Center. Abra uma janela de comando, altere o diretório para o diretório de origem e, em seguida, você está pronto para compilar.

  • Construa e sirva com gulp:

    gulp build
    gulp serve -p 4201
    

A porta escolhida deve estar livre no momento. Certifique-se de que não tenta utilizar a porta em que o Windows Admin Center está a ser executado.

Seu projeto pode ser carregado lateralmente em uma instância local do Windows Admin Center para teste anexando o projeto servido localmente ao Windows Admin Center.

  • Iniciar o Windows Admin Center em um navegador da Web

  • Abra o depurador (F12)

  • Abra o Console e digite o seguinte comando:

    MsftSme.sideLoad("http://localhost:4201")
    
  • Atualizar o navegador da Web

Seu projeto agora estará visível na lista Ferramentas com (side loaded) ao lado do nome.

Direcionar para uma versão diferente do SDK do Windows Admin Center

Manter sua extensão atualizada com alterações de SDK e alterações de plataforma é fácil. Leia sobre como direcionar uma versão diferente do SDK do Windows Admin Center.