Можно ли разрабатывать функции Azure в автономном режиме?

Могу ли я разрабатывать и тестировать Функции Azure полностью в автономном режиме (без подключения к сети)? Я понимаю, что функции Azure можно отлаживать локально, но это не то же самое, что работать полностью без подключения к платформе Azure.

Я нашел несколько ссылок в документации Azure, которые я интерпретировал как означающие, что подключение к Azure необходимо для запуска Функций Azure, даже локально.

FWIW, я использую инструменты Azure Functions в Visual Studio 2017 (15.3.2)


person DenaliHardtail    schedule 30.08.2017    source источник
comment
Это будет зависеть от того, какой тип привязки вы используете. Если вы используете очереди хранилища Azure или большие двоичные объекты, вы сможете разрабатывать и тестировать Функции Azure локально. В этом случае вы будете использовать эмулятор хранения Azure.   -  person Gaurav Mantri    schedule 30.08.2017
comment
@GauravMantri - Согласно документации, We recommend that you use an Azure Storage account when developing locally. Use of the Azure Storage Emulator is not supported by Azure Functions tools. Если документация верна, то любая автономная разработка невозможна, верно?   -  person DenaliHardtail    schedule 30.08.2017
comment
Я помню, как использовал эмулятор хранилища для локального тестирования функций. Также обратите внимание на это сообщение в блоге: eliostruyf.com/.   -  person Gaurav Mantri    schedule 30.08.2017


Ответы (2)


Ответ - нет. Хотя вы можете использовать некоторые привязки в автономном режиме, например хранилище Azure через эмулятор Azure, не все из них позволяют работать в автономном режиме.

person Thiago Custodio    schedule 30.08.2017

Это зависит. Некоторой инфраструктуре (например, [Singleton], которая используется Timer) требуется учетная запись хранения, поскольку они используют аренду больших двоичных объектов для координации. Ведение журнала можно отключить.

С одной стороны, если вы привязаны к облачным ресурсам (например, DocDb) или используете облачные триггеры, то очевидно, что вы должны быть в сети. Некоторые привязки (например, blob) могут работать против эмулятора хранилища, но это зависит от конкретного случая.

С другой стороны, привязка параметров Azure Functions делает его очень удобным для имитации, что позволяет вам вызывать свои функции непосредственно в автономном режиме (а также в модульных тестах), а не через логику прослушивания и отправки Функций Azure. Например, вы можете привязать Blob к Stream или TextReader, а затем напрямую вызвать свою функцию и передать им потоки, привязанные к оперативной памяти или файловой системе. Интерфейсы IAsyncCollector также очень удобны для имитации. Наши собственные модульные тесты в SDK WebJobs в значительной степени используют это (см. https://github.com/Azure/azure-webjobs-sdk/blob/b8674651654f27a51ffadd0d38b4f89ce246b7a1/test/Microsoft.Absit.Host.WebJ.Индексаторы/ReturnValueTests.cs в качестве примера)

person Mike S    schedule 14.02.2018