Azure-docs: Erro ao excluir sub-rede serviceAssociationLinks AppServiceLink

Criado em 25 fev. 2020  ·  28Comentários  ·  Fonte: MicrosoftDocs/azure-docs

Ao tentar excluir uma sub-rede no Azure, recebo a seguinte mensagem: Falha ao salvar a sub-rede 'devops-subnet'. Erro: 'Subnet GumSite-rg-devops / owners / Microsoft.Network / virtualNetworks / Devopsvnet / subnets / devops-subnet'> Devopsvnet / devops-subnet requer qualquer uma das seguintes delegações [Microsoft.Web / serverFarms] para fazer referência link de associação de serviço / assinaturas / * * * * /resourceGroups/GumSite-rg-devops/providers/Microsoft.Network/virtualNetworks/Devopsvnet/subnets/devops-subnet/serviceAssociationLinks/AppServiceLink. '


Detalhes do Documento

Não edite esta seção.

Pri3 cxp product-question triaged virtual-networsvc

Comentários muito úteis

Eu tive o mesmo problema. Eu tinha o serviço de aplicativo conectado à sub-rede. Eu removi o plano de serviço de aplicativo junto com o serviço de aplicativo que quebrou minha VNet e não permitiu remover a sub-rede associada. Para corrigir a solução:

  1. Crie um plano de serviço de aplicativo com o mesmo nome do excluído
  2. Crie o serviço de aplicativo com o mesmo nome do excluído
  3. Link App Service com a sub-rede VNET
  4. Desconectar VNet do Serviço de Aplicativo -> Rede -> Integração VNet -> Desconectar
  5. Excluir sub-rede

@blendsdk isso provavelmente pode ajudá-lo

Todos 28 comentários

@yvesgermain Obrigado por

Aqui está um artigo da Microsoft "Incapaz de excluir VNet devido a serviceAssociationLinks / AppServiceLink" que se assemelha à minha situação:
https://social.msdn.microsoft.com/Forums/en-US/f3fa0fb2-d930-484c-90a5-6860e360d87f/unable-to-delete-vnet-due-to-serviceassociationlinksappservicelink?forum=WAVirtualMachinesVirtualNetwork

Aqui está um artigo que se parece com a minha situação: Incapaz de excluir a VNet devido a serviceAssociationLinks / AppServiceLink: https://social.msdn.microsoft.com/Forums/en-US/f3fa0fb2-d930-484c-90a5-6860e360d87f/unable-to- delete-vnet-due-to-serviceassociationlinksappservicelink? forum = WAVirtualMachinesVirtualNetwork

@yvesgermain Obrigado pela resposta. Eu encaminhei isso para a equipe apropriada para investigar e atualizar.

@yvesgermain Este é um problema conhecido e a única maneira de excluí-lo é entrar em contato com o Suporte do Azure. Se você não tiver um plano de suporte, envie um e-mail para [email protected] com sua ID de assinatura e um link para esta postagem, e exclua a sub-rede.

Agora prosseguiremos para fechar este tópico. Se houver mais perguntas sobre este assunto, marque-me em sua resposta. Teremos o prazer de continuar a discussão e reabriremos o assunto.

Parece ter um problema relacionado, ou seja, quando tento excluir uma sub-rede, recebo um erro:

Failed to delete subnet 'xxx'. Error: Subnet xxx is in use by my-resource-group/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/xxx/serviceAssociationLinks/AppServiceLink'>my-vnet/xxx/AppServiceLink and cannot be deleted. In order to delete the subnet, delete all the resources within the subnet. See aka.ms/deletesubnet.

Isso também é algo que só pode ser consertado fazendo uma chamada de suporte?

@sergevm Se você excluiu o serviço de aplicativo e o link, mas a sub-rede não pode ser excluída, você precisará criar uma solicitação de suporte.

Se você não tiver um plano de suporte, envie um e-mail para [email protected] com sua ID de assinatura e um link para esta postagem, e exclua a sub-rede.

Alguma ideia de quando esse bug será corrigido?

Eu tive o mesmo problema. Eu tinha o serviço de aplicativo conectado à sub-rede. Eu removi o plano de serviço de aplicativo junto com o serviço de aplicativo que quebrou minha VNet e não permitiu remover a sub-rede associada. Para corrigir a solução:

  1. Crie um plano de serviço de aplicativo com o mesmo nome do excluído
  2. Crie o serviço de aplicativo com o mesmo nome do excluído
  3. Link App Service com a sub-rede VNET
  4. Desconectar VNet do Serviço de Aplicativo -> Rede -> Integração VNet -> Desconectar
  5. Excluir sub-rede

@blendsdk isso provavelmente pode ajudá-lo

@sergevm Se você excluiu o serviço de aplicativo e o link, mas a sub-rede não pode ser excluída, você precisará criar uma solicitação de suporte.

Se você não tiver um plano de suporte, envie um e-mail para [email protected] com sua ID de assinatura e um link para esta postagem, e exclua a sub-rede.

Enviei uma mensagem para [email protected], mas ninguém parece responder.

@frehnejc Eu criei uma solicitação de suporte no portal do Azure e isso foi corrigido pelo suporte logo depois. Não precisava enviar um e-mail.

@frehnejc Obrigado por continuar! Consegui encontrar seu e-mail e habilitei sua assinatura para uma solicitação de suporte gratuita.

@frehnejc Obrigado por continuar! Consegui encontrar seu e-mail e habilitei sua assinatura para uma solicitação de suporte gratuita.

Obrigado, também tenho problemas com os IPs de grupo incapazes de excluir quando havia um firewall azul, posso registrar um tíquete nele também?

@frehnejc Você pode, mas será mais fácil pedir ao engenheiro para cuidar disso com a mesma solicitação de suporte. Se o engenheiro solicitar que você faça um segundo tíquete e você não conseguir, responda ao meu e-mail e ativarei outra solicitação de suporte, se necessário.

Corri para isso com instâncias de contêiner e aqui está o que fiz para excluí-lo quando minha instância de contêiner foi removida e não pude remover a delegação.

usando o az cli com um usuário conectado para obter um token jwt

az account get-access-token --resource https://management.azure.com/

em seguida, usando o carteiro para emitir as seguintes chamadas:

adicione aos cabeçalhos: "Autorização: Portador | accesstoken de cli |"

DELETE  Service Association
 https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}/providers/Microsoft.ContainerInstance/serviceAssociationLinks/default?api-version=2018-10-01

DELETE Network Profle
 https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkProfiles/{networkProfileName}?api-version=2020-05-01

depois disso, eu poderia remover a delegação usando o portal, cli ou powershell

No caso de um serviço de aplicativo, você precisa limpar a associação em Plano de serviço de aplicativo> Rede, que listará todos os links que sua rede possui para qualquer um dos aplicativos, incluindo slots.
Depois de desconectar o vnet do serviço de aplicativo e do slot, você deve ser capaz de definir a delegação de volta para Nenhum e desmarcar o ponto de extremidade do serviço e, finalmente, ser capaz de excluir a sub-rede, respectivamente.

@dgcaron isso funcionou! Muito obrigado.

@dgcaron ,
Com sua ajuda, consegui remover a VNet usando o PowerShell.
Muito obrigado!

[string]$ResourceGroupName = 'MyResourceGroupName'
[string]$VirtualNetworkName = 'VNetName'
[string]$SubnetName = 'SubnetName'

$CurrentAzureContext = Get-AzContext
$AzureRmProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$ProfileClient = New-Object Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient($AzureRmProfile)
$Token = $ProfileClient.AcquireAccessToken($CurrentAzureContext.Tenant.TenantId)
[string]$AccessToken = $Token.AccessToken
[string]$ManagementEp = $CurrentAzureContext.Environment.ResourceManagerUrl

[string]$NetworkProfileName = (Get-AzNetworkProfile -ResourceGroupName $ResourceGroupName).Name

[string]$Uri1 = "$($ManagementEp)subscriptions/$($CurrentAzureContext.Subscription.Id)/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/virtualNetworks/$VirtualNetworkName/subnets/$SubnetName/providers/Microsoft.ContainerInstance/serviceAssociationLinks/default?api-version=2018-10-01"
[string]$Uri2 = "$($ManagementEp)subscriptions/$($CurrentAzureContext.Subscription.Id)/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/networkProfiles/$($NetworkProfileName)?api-version=2020-05-01"

Invoke-RestMethod -Method Delete -Uri $Uri1 -Headers @{"Authorization" = ("Bearer " + $AccessToken) }

Invoke-RestMethod -Method Delete -Uri $Uri2 -Headers @{"Authorization" = ("Bearer " + $AccessToken) }

Eu tive o mesmo problema. Eu tinha o serviço de aplicativo conectado à sub-rede. Eu removi o plano de serviço de aplicativo junto com o serviço de aplicativo que quebrou minha VNet e não permitiu remover a sub-rede associada. Para corrigir a solução:

  1. Crie um plano de serviço de aplicativo com o mesmo nome do excluído
  2. Crie o serviço de aplicativo com o mesmo nome do excluído
  3. Link App Service com a sub-rede VNET
  4. Desconectar VNet do Serviço de Aplicativo -> Rede -> Integração VNet -> Desconectar
  5. Excluir sub-rede

@blendsdk isso provavelmente pode ajudá-lo

@ybutkevych isso funcionou para mim! Muito obrigado.

Eu tive o mesmo problema. Eu tinha o serviço de aplicativo conectado à sub-rede. Eu removi o plano de serviço de aplicativo junto com o serviço de aplicativo que quebrou minha VNet e não permitiu remover a sub-rede associada. Para corrigir a solução:

  1. Crie um plano de serviço de aplicativo com o mesmo nome do excluído
  2. Crie o serviço de aplicativo com o mesmo nome do excluído
  3. Link App Service com a sub-rede VNET
  4. Desconectar VNet do Serviço de Aplicativo -> Rede -> Integração VNet -> Desconectar
  5. Excluir sub-rede

@blendsdk isso provavelmente pode ajudá-lo

Quem estiver enfrentando o mesmo problema no futuro, siga estas etapas, eu apenas experimentei e resolvi meu problema.

@dgcaron , obrigado por pesquisar os documentos da API :) Aqui está um script bash para a limpeza:

#!/bin/bash
# Requires "httpie" command line tool

# Set variables with your identifiers...
subscriptionId=""
resourceGroupName=""
virtualNetworkName=""
subnetName=""

# To get the profile name, try subnet delete with CLI or portal and check the error message
# Should be something like this:
networkProfileName="aci-network-profile-vnet-foo-01-subnet-bar-01"

token=$(az account get-access-token --resource https://management.azure.com/ --query accessToken -o tsv)
http DELETE https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Network/virtualNetworks/${virtualNetworkName}/subnets/${subnetName}/providers/Microsoft.ContainerInstance/serviceAssociationLinks/default?api-version=2018-10-01 \
"Authorization: Bearer ${token}"

http DELETE https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkProfiles/${networkProfileName}?api-version=2020-05-01 \
"Authorization: Bearer ${token}"

A solução de @jannekeskitalo funcionou bem para mim. Mas eu não tinha httpie em meu ambiente, então a implementação a seguir é a mesma com curl.

#!/bin/bash

# Set variables with your identifiers...
subscriptionId=""
resourceGroupName=""
virtualNetworkName=""
subnetName=""

# To get the profile name, try subnet delete with CLI or portal and check the error message
# Should be something like this:
networkProfileName="aci-network-profile-vnet-foo-01-subnet-bar-01"

token=$(az account get-access-token --resource https://management.azure.com/ --query accessToken -o tsv)

curl -H "Authorization: Bearer ${token}" -X DELETE https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Network/virtualNetworks/${virtualNetworkName}/subnets/${subnetName}/providers/Microsoft.ContainerInstance/serviceAssociationLinks/default?api-version=2018-10-01
curl -H "Authorization: Bearer ${token}" -X DELETE https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkProfiles/${networkProfileName}?api-version=2020-05-01

@dgcaron Muito obrigado! Graças à sua ajuda, consegui remover a delegação de sub-rede.

@jannekeskitalo @boonwj

Acho que a solução mais simples é apenas usar az rest assim:

az rest --method delete --uri https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}/providers/Microsoft.ContainerInstance/serviceAssociationLinks/default?api-version=2018-10-01

Corri para isso com instâncias de contêiner e aqui está o que fiz para excluí-lo quando minha instância de contêiner foi removida e não pude remover a delegação.

usando o az cli com um usuário conectado para obter um token jwt

az account get-access-token --resource https://management.azure.com/

em seguida, usando o carteiro para emitir as seguintes chamadas:

adicione aos cabeçalhos: "Autorização: Portador | accesstoken de cli |"

DELETE  Service Association
 https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}/providers/Microsoft.ContainerInstance/serviceAssociationLinks/default?api-version=2018-10-01

DELETE Network Profle
 https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkProfiles/{networkProfileName}?api-version=2020-05-01

depois disso, eu poderia remover a delegação usando o portal, cli ou powershell

Isso funcionou, obrigado!

@ TravisCragg-MSFT seria possível consertar isso corretamente em vez de forçar todas essas pessoas a entrar em contato com o suporte?

O comando az cli parece não funcionar para AppServiceLinks. Ele é executado com sucesso, mas o link não exclui.

Podemos obter uma solução real para isso? Se você não fornecer uma maneira de desconectar a vnet no caso em que um serviço de aplicativo e o ASP são excluídos, você provavelmente irá gerar alguns tíquetes de suporte para nós em ambientes de não produção, onde excluir grupos de recursos inteiros e implantar novamente é mais comum.

Por que está fechado? Este é um bug / problema / questão existente.

Esta página foi útil?
0 / 5 - 0 avaliações