Azure - Conectando-se ao armazenamento do Blob do serviço de aplicativo por meio do vnet

1

Eu configurei uma VNET com um GW ponto-a-site e duas outras sub-redes.

  • VNET
    • StorageSubnet (com ponto de extremidade de serviço para armazenamento)
    • GWSubnet (com ponto de extremidade de serviço para armazenamento)
    • noStorage

Conectei meu aplicativo da web à VNET, mas recebi uma exceção quando tentando listar os blobs [1]. Se eu disponibilizar publicamente a conta de armazenamento, tudo funcionará como esperado.

Para descobrir onde ele falha, configurei duas pequenas VMs no StorageSubnet e noStorage, respectivamente. Como esperado, trabalha-se com os blobs de listagem do Azure CLI e o outro falha. Dessa forma, também consegui visualizar as Rotas efetivas, nas quais o ponto de extremidade do serviço é exibido.

Existe uma maneira de visualizar os Roteiros efetivos em uma instância de serviços de aplicativo? (minha webapp)

O serviço de aplicativo (minha webapp) conecta-se à VNET e não a uma sub-rede, há algo que está faltando, algum roteamento manual é necessário? Eu esperaria que isso fosse encaminhado como o meu teste de VM.

Existe uma maneira de executar a CLI do Azure no serviço de aplicativo ou outra próxima etapa na depuração?

[1]

Microsoft.WindowsAzure.Storage.StorageException
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.    <ExecuteAsyncInternal>d__4'1.MoveNext()
--- End of stack trace from previous location where exception was thrown     ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.   <ListBlobsSegmentedAsync>d__61.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter'1.GetResult()
    
por user9685139 23.04.2018 / 12:46

1 resposta

0

Este é um problema antigo.

For Azure Web App service VNET intergration,it gives your web app access to resources in your virtual network but does not grant private access to your web app from the virtual network. Private site access refers to making your app only accessible from a private network such as from within an Azure virtual network. Private site access is only available with an ASE configured with an Internal Load Balancer (ILB). For details on using an ILB ASE, start with the article here: Creating and using an ILB ASE.

Isso significa que, com a integração com VNET, seu aplicativo da web pode conectar a VNET de fora, mas o aplicativo da Web não está dentro da VNET.

Assim, o firewall para a conta de armazenamento é apenas permitir o tráfego da VNET, não pode permitir o tráfego fora da VNET.

Para o seu cenário, um método está usando o ILB ASE. Ele pode tornar seu aplicativo da web em uma VNET.

    
por 24.04.2018 / 07:39