Отладка функций Azure в Visual Studio

Я разрабатываю приложение логики и размещаю там несколько настраиваемых функций. Это файлы csx, значит, это код C # (код скрипта).

На данный момент я использую только веб-интерфейс Azure для редактирования функции и ее тестирования. Но я думаю, что это не лучший способ, потому что я хочу непрерывное развертывание. Поэтому я хочу использовать репозиторий git, чтобы хранить там свой код. Что потребуется в процессе развертывания для публикации изменений.

Так можно ли отладить мою функцию локально? Может с эмулятором или иным?

Я попробовал эту ссылку для настройки локальной среды: https://azure.microsoft.com/da-dk/documentation/articles/functions-run-local/#to-run-locally

Но я не знаю, правильный ли это способ отлаживать функции локально.

кстати, можно ли локально запустить приложение логики?


person Sascha    schedule 01.09.2016    source источник


Ответы (2)


Прочтите этот документ < / а>

Это то, что я использую для локальной разработки. В основном после установки инструментов вы просто нажимаете F5 (или Debug), и Visual Studio компилирует ваши функции и устанавливает для них соединение localhost. Затем вы можете использовать бесплатную программу, такую ​​как Postman (моя любимая), для запуска функций. Если у вас установлена ​​точка останова, она будет запущена после вызова функции. Как только он запустится, вы в конечном итоге увидите что-то вроде этого после того, как все будет сделано:

введите здесь описание изображения

Обратите внимание, что он использует http, а не https. Затем вы можете использовать Postman или что-то еще для доступа к функции через указанный URL-адрес. Также обратите внимание, что при локальном запуске его, похоже, не волнует, настроена ли ваша функция так, чтобы требовать ключ администратора / функции, и не заботится, требует ли она аутентификации.

С этой настройкой я тестирую весь свой код локально, затем, когда это сделано, я отправляю его в систему управления версиями, а затем, используя подключаемый модуль, полученный по ссылке, я публикую свои функции в Azure. В моем случае я использую TFS, а не Git, поэтому я не могу (на момент написания этой статьи) подключить его к непрерывной интеграции Azure. Поскольку вы используете Git, вам не придется иметь дело с этапом публикации.

person Architekt    schedule 27.02.2017
comment
это работает с С #? Потому что в документе описан путь node js. И точка останова в С # не попадет на мою машину :( - person Sascha; 28.02.2017
comment
Документ, который я связал, предназначен для C #. И да, это работает на C #, это то, что я использую локально. Я могу нажимать точки останова и просматривать переменные. Если вы не достигли точки останова, убедитесь, что вы все установили. Убедитесь, что вы прочитали выделенную жирным шрифтом часть об обновлении от 12-6-2016 в верхней части этого документа. Также убедитесь, что вы вызываете свой локальный хост и используете http (как вы можете видеть на моем скриншоте выше). - person Architekt; 28.02.2017

Я бы сказал, что это зависит от обстоятельств. Например, если вы будете использовать триггеры больших двоичных объектов, вы не сможете тестировать локально, просто «имитируйте» это.

Вот полезная ссылка из официального документа:

https://azure.microsoft.com/en-us/documentation/articles/functions-run-local/

person Thiago Custodio    schedule 01.09.2016
comment
Итак, у меня есть триггер для хранения таблиц. Похоже, что на данный момент это не будет поддержано, и я тоже должен поиздеваться над этим? - person Sascha; 02.09.2016
comment
Поскольку функции основаны на облачных событиях, я бы сказал, что не все из них вы сможете протестировать локально, и вы должны имитировать их. Я предлагаю вам создать отдельную подписку только для тестирования, и вы можете протестировать все свои функции с реальными событиями в облаке. - person Thiago Custodio; 04.09.2016
comment
Триггеры очереди работают. Я не уверен насчет BLOB-объектов и таблиц, но если триггеры очереди работают, я думаю, что и другие тоже. Я только вчера пробовал это. Однако он использовал мое хранилище очередей в облаке, а не локальную копию очереди. - person Architekt; 28.02.2017
comment
Проверьте строку подключения в файле functions.json. Вероятно, он указывает на вашу очередь Azure. Попробуйте заменить его на UseDevelopmentStorage = true - person Thiago Custodio; 28.02.2017