Habilitar a Conexão de Área de Trabalho Remota para uma Função nos Serviços de Nuvem do Azure (clássico) usando o Visual Studio
Importante
Os Serviços na Nuvem (clássicos) foram preteridos para todos os clientes a partir de 1º de setembro de 2024. Todas as implantações em execução existentes serão interrompidas e encerradas pela Microsoft e os dados serão perdidos permanentemente a partir de outubro de 2024. Novas implantações devem usar o novo modelo de implantação baseado no Azure Resource Manager Serviços de Nuvem do Azure (suporte estendido).
A Área de Trabalho Remota permite que você acesse a área de trabalho de uma função em execução no Azure, usando o protocolo RDP (Remote Desktop Protocol). Você pode usar uma conexão de Área de Trabalho Remota para solucionar e diagnosticar problemas com seu aplicativo enquanto ele é executado.
O assistente de publicação que o Visual Studio fornece para serviços de nuvem inclui uma opção para habilitar a Área de Trabalho Remota durante o processo de publicação, usando as credenciais que você fornece. O uso dessa opção é adequado ao usar o Visual Studio 2017 versão 15.4 e versões anteriores.
Com o Visual Studio 2017 versão 15.5 e posterior, recomendamos que você evite habilitar a Área de Trabalho Remota por meio do assistente de publicação, a menos que esteja trabalhando como um único desenvolvedor. Para qualquer situação em que vários desenvolvedores abram o projeto, você deve habilitar a Área de Trabalho Remota por meio do portal do Azure, do PowerShell ou de um pipeline de liberação em um fluxo de trabalho de implantação contínua. Essa recomendação se deve a uma alteração na forma como o Visual Studio se comunica com a Área de Trabalho Remota na máquina virtual (VM) do serviço de nuvem, conforme explicado neste artigo.
Configurar a Área de Trabalho Remota por meio do Visual Studio 2017 versão 15.4 e versões anteriores
Ao usar o Visual Studio 2017 versão 15.4 e versões anteriores, você pode usar a opção Habilitar Área de Trabalho Remota para todas as funções no assistente de publicação. Você ainda pode usar o assistente com o Visual Studio 2017 versão 15.5 e posterior, mas não use a opção Área de Trabalho Remota.
No Visual Studio, inicie o assistente de publicação clicando com o botão direito do mouse em seu projeto de serviço de nuvem no Gerenciador de Soluções e escolhendo Publicar.
Entre em sua assinatura do Azure, se necessário, e selecione Avançar.
Na página Definições, selecione Ativar Ambiente de Trabalho Remoto para todas as funções e, em seguida, selecione a ligação Definições... para abrir a caixa de diálogo Configuração do Ambiente de Trabalho Remoto.
Na parte inferior da caixa de diálogo, selecione Mais opções. Este comando exibe uma lista suspensa na qual você cria ou escolhe um certificado para que possa criptografar informações de credenciais ao se conectar via área de trabalho remota.
Nota
Os certificados necessários para uma conexão de área de trabalho remota são diferentes dos certificados que você usa para outras operações do Azure. O certificado de acesso remoto deve ter uma chave privada.
Selecione um certificado na lista ou escolha Criar...>.< Se estiver criando um novo certificado, forneça um nome amigável para o novo certificado quando solicitado e selecione OK. O novo certificado aparece na caixa de listagem suspensa.
Forneça um nome de usuário e uma senha. Não é possível usar uma conta existente. Não use "Administrador" como o nome de usuário para a nova conta.
Escolha uma data em que a conta expirará. Uma conta expirada bloqueia automaticamente outras ligações ao Ambiente de Trabalho Remoto.
Depois de fornecer todas as informações necessárias, selecione OK. O Visual Studio adiciona as configurações da Área de Trabalho Remota aos arquivos e
.csdef
ao.cscfg
seu projeto, incluindo a senha criptografada usando o certificado escolhido.Conclua todas as etapas restantes usando o botão Avançar e selecione Publicar quando estiver pronto para publicar seu serviço de nuvem. Se você não estiver pronto para publicar, selecione Cancelar e responda Sim quando solicitado a salvar as alterações. Pode publicar o seu serviço na nuvem mais tarde com estas definições.
Configurar a Área de Trabalho Remota ao usar o Visual Studio 2017 versão 15.5 e posterior
Com o Visual Studio 2017 versão 15.5 e posterior, você ainda pode usar o assistente de publicação com um projeto de serviço de nuvem. Você também pode usar a opção Habilitar Área de Trabalho Remota para todas as funções se estiver trabalhando apenas como um único desenvolvedor.
Se você estiver trabalhando como parte de uma equipe, deve, em vez disso, habilitar a área de trabalho remota no serviço de nuvem do Azure usando o portal do Azure ou o PowerShell.
Essa recomendação se deve a uma alteração na forma como o Visual Studio 2017 versão 15.5 e posterior se comunica com a VM do serviço de nuvem. Quando você habilita a Área de Trabalho Remota por meio do assistente de publicação, versões anteriores do Visual Studio se comunicam com a VM por meio do "plug-in RDP". O Visual Studio 2017 versão 15.5 e posterior se comunica usando a "extensão RDP" que é mais segura e mais flexível. Essa alteração também se alinha com o fato de que o portal do Azure e os métodos do PowerShell para habilitar a Área de Trabalho Remota também usam a extensão RDP.
Quando o Visual Studio se comunica com a extensão RDP, ele transmite uma senha de texto sem formatação sobre Transport Layer Security (TLS). No entanto, os arquivos de configuração do projeto armazenam apenas uma senha criptografada, que pode ser descriptografada em texto sem formatação somente com o certificado local que foi originalmente usado para criptografá-lo.
Se você implantar o projeto de serviço de nuvem do mesmo computador de desenvolvimento todas as vezes, esse certificado local estará disponível. Nesse caso, você ainda pode usar a opção Habilitar Área de Trabalho Remota para todas as funções no assistente de publicação.
No entanto, se você ou outros desenvolvedores quiserem implantar o projeto de serviço de nuvem de computadores diferentes, esses outros computadores não terão o certificado necessário para descriptografar a senha. Como resultado, você verá a seguinte mensagem de erro:
Applying remote desktop protocol extension.
Certificate with thumbprint [thumbprint] doesn't exist.
Você pode alterar a senha toda vez que implantar o serviço de nuvem, mas essa ação se torna inconveniente para todos que precisam usar a Área de Trabalho Remota.
Se você estiver compartilhando o projeto com uma equipe, é melhor desmarcar a opção no assistente de publicação e, em vez disso, habilitar a Área de Trabalho Remota diretamente pelo portal do Azure ou usando o PowerShell.
Implantando a partir de um servidor de compilação com o Visual Studio 2017 versão 15.5 e posterior
Você pode implantar um projeto de serviço de nuvem de um servidor de compilação (por exemplo, com os Serviços de DevOps do Azure) no qual o Visual Studio 2017 versão 15.5 ou posterior está instalado no agente de compilação. Com esse arranjo, a implantação acontece a partir do mesmo computador em que o certificado de criptografia está disponível.
Para usar a extensão RDP dos Serviços de DevOps do Azure, inclua os seguintes detalhes em seu pipeline de compilação:
Inclua
/p:ForceRDPExtensionOverPlugin=true
em seus argumentos MSBuild para certificar-se de que a implantação funciona com a extensão RDP em vez do plug-in RDP. Por exemplo:msbuild AzureCloudService5.ccproj /t:Publish /p:TargetProfile=Cloud /p:DebugType=None /p:SkipInvalidConfigurations=true /p:ForceRDPExtensionOverPlugin=true
Após as etapas de compilação, adicione a etapa Implantação do Serviço de Nuvem do Azure e defina suas propriedades.
Após a etapa de implantação, adicione uma etapa do Azure PowerShell , defina sua propriedade Nome para exibição como "Implantação do Azure: Habilitar extensão RDP" (ou outro nome adequado) e selecione sua assinatura apropriada do Azure.
Defina Tipo de script como "Inline" e cole o seguinte abaixo no campo Inline Script . (Você também pode criar um
.ps1
arquivo em seu projeto com esse script, definir Tipo de Script como "Caminho do Arquivo de Script" e definir Caminho de Script para apontar para o arquivo.)Param( [Parameter(Mandatory=$True)] [string]$username, [Parameter(Mandatory=$True)] [string]$password, [Parameter(Mandatory=$True)] [string]$serviceName, [Datetime]$expiry = ($(Get-Date).AddYears(1)) ) Write-Host "Service Name: $serviceName" Write-Host "User Name: $username" Write-Host "Expiry: $expiry" $securepassword = ConvertTo-SecureString -String $password -AsPlainText -Force $credential = New-Object System.Management.Automation.PSCredential $username,$securepassword # Try to remote existing RDP Extensions try { $existingRDPExtension = Get-AzureServiceRemoteDesktopExtension -ServiceName $servicename if ($existingRDPExtension -ne $null) { Remove-AzureServiceRemoteDesktopExtension -ServiceName $servicename -UninstallConfiguration } } catch { } Set-AzureServiceRemoteDesktopExtension -ServiceName $servicename -Credential $credential -Expiration $expiry -Verbose
Conectar-se a uma função do Azure usando a Área de Trabalho Remota
Depois de publicar seu serviço de nuvem no Azure e habilitar a Área de Trabalho Remota, você pode usar o Visual Studio Server Explorer para fazer logon na VM do serviço de nuvem:
No Gerenciador de Servidores, expanda o nó do Azure e, em seguida, expanda o nó de um serviço de nuvem e uma de suas funções para exibir uma lista de instâncias.
Clique com o botão direito do mouse em um nó de instância e selecione Conectar usando a Área de Trabalho Remota.
Introduza o nome de utilizador e a palavra-passe que criou anteriormente. Agora você está conectado à sua sessão remota.