Azure - Подключение к хранилищу BLOB-объектов из службы приложений через vnet

Я установил виртуальную сеть с GW точка-сайт и двумя другими подсетями.

  • VNET
    • StorageSubnet (с конечной точкой службы и хранилищем)
    • GWSubnet (с конечной точкой службы и хранилищем)
    • noStorage

Я подключил свое веб-приложение к VNET, но получаю исключение, когда пытается перечислить капли [1]. Если я сделаю учетную запись хранения общедоступной, все будет работать, как ожидалось.

Чтобы выяснить, где это не удается, я установил две небольшие виртуальные машины в StorageSubnet и noStorage соответственно. Как и ожидалось, один работает с BLOB-объектами списка Azure CLI, а другой не работает. Таким образом, я также смог просмотреть эффективные маршруты, где появляется конечная точка службы.

Есть ли способ просмотреть эффективные маршруты в экземпляре служб приложений? (мое веб-приложение)

Служба приложения (мое веб-приложение) подключается к виртуальной сети, а не к подсети. Что-то мне не хватает, требуется ручная маршрутизация? Я бы ожидал, что это будет проходить так же, как мой тест виртуальной машины.

Могу ли я запустить Azure CLI в службе приложений, или какой-то другой следующий шаг в отладке?

[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()
1
задан 23 April 2018 в 13:46
1 ответ

Aquest és un problema antic.

Per a la integració VNET del servei d'Azure Web App, proporciona la vostra aplicació web accés als recursos de la vostra xarxa virtual però no concedeix privats accediu a la vostra aplicació web des de la xarxa virtual. Accés al lloc privat es refereix a fer que la vostra aplicació només sigui accessible des d’una xarxa privada com des d'una xarxa virtual d'Azure. Només hi ha accés privat al lloc disponible amb un ASE configurat amb un equilibrador de càrrega intern (ILB). Per obtenir més informació sobre l’ús d’un ASE ILB, comenceu per l’article aquí: Creació i ús d'un ASE ILB.

Significa que amb la integració de VNET, l'aplicació web pot connectar la xarxa virtual des de fora, però l'aplicació web no es troba dins de la xarxa virtual. compte és només permetre el trànsit des de la xarxa virtual, no pot permetre el trànsit fora de la xarxa virtual.

Per al vostre cas, un mètode fa servir ILB ASE. Pot convertir la vostra aplicació web en una xarxa virtual.

0
ответ дан 4 December 2019 в 04:02

Теги

Похожие вопросы