Compartilhar via


Desenvolver um plug-in de gateway

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

Estes plug-ins de gateway são incluídos por padrão com Windows Admin Center:

  • Plug-in de gateway do PowerShell
  • Plug-in de gateway do WMI

Se você quiser se comunicar com um protocolo diferente do PowerShell ou WMI, por exemplo, com o REST, poderá criar um plug-in de gateway próprio. 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 obter 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 e as ferramentas de desenvolvedor do Windows Admin Center ainda não foram atualizados para oferecer 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 compatível com o gateway modernizado.

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

Prepare o seu ambiente

Caso ainda não tenha feito isso, prepare seu ambiente instalando dependências e 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 classe C# que implemente a interface IPlugIn 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-in de gateway deve usar IPlugIn (ou, opcionalmente, a classe abstrata HttpPlugIn).

Baixe um exemplo do GitHub

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

Adicionar conteúdo

Adicione um conteúdo à cópia clonada do projeto de plug-in C# de exemplo (ou seu próprio projeto) para conter suas APIs personalizadas e crie seu arquivo DLL de plug-in de gateway personalizado a ser usado nas próximas etapas.

Implantar plug-in para teste

Teste a DLL do plug-in de gateway personalizado 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 Dados do Aplicativo do computador 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, crie-a.

Observação

Você pode substituir o local do plug-in em um build de depuração atualizando o valor de configuração "StaticsFolder". Se você estiver depurando localmente, essa configuração estará no App.Config da solução Desktop.

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

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

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

Opcional: anexar ao plug-in para depuração

No Visual Studio 2017, no menu Depurar, selecione "Anexar ao Processo". Na próxima janela, role a lista Processos Disponíveis e selecione SMEDesktop.exe e clique em "Anexar". Depois que o depurador for iniciado, você poderá colocar um ponto de interrupção no código do recurso e, em seguida, fazer exercício por meio do formato de URL acima. Para nosso projeto de exemplo (nome do recurso: "Uno de exemplo"), a 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 da qual você pode chamar seu plug-in de gateway personalizado. Crie ou navegue até uma pasta em que você deseja armazenar seus arquivos de projeto, abrir um prompt de comando e definir essa pasta como o diretório de trabalho. Usando o SDK Windows Admin Center instalado anteriormente, crie uma 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 uso de exemplo:

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

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

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

npm install

Depois que isso for concluído, você configurará tudo o que precisa para carregar sua nova extensão em Windows Admin Center.

Conectar 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:

Compilar e carregar a extensão lateralmente

Em seguida, compile e carregue a extensão no Windows Admin Center. Abra uma janela Comando, altere o diretório para o diretório de origem e você estará pronto para criar.

  • Compilar e servir com gulp:

    gulp build
    gulp serve -p 4201
    

Observe que você precisa escolher uma porta que está atualmente gratuita. Certifique-se de não tentar usar a porta que está em execução no Windows Admin Center.

Seu projeto pode ser transferido por sideload em uma instância local do Windows Admin Center para teste ao anexar o projeto servido localmente no Windows Admin Center.

  • Iniciar o Windows Admin Center em um navegador da Web

  • Abrir 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 (sideloaded) ao lado do nome.

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

É muito fácil manter sua extensão atualizada com as alterações do SDK e as alterações na plataforma. Leia sobre como focar uma versão diferente do SDK do Windows Admin Center.