Получите один и тот же код триггера очереди функций Azure для назначения двух разных очередей в зависимости от настроек приложения
У меня есть лазурная функция, для которой я хотел бы иметь две разные очереди.
Я действительно не хочу иметь 2 отдельных репозитория для управления и стараться, чтобы они были идентичными. Для тестирования своих функций я использовал операторы прекомпилятора и подумал, что смогу просто расширить это следующим образом:
public static class ProdIndividualParse
{
#if DEBUG
[FunctionName("TESTIndividualParse")]
[Timeout("60:00:00")]
public async static Task Run([QueueTrigger("parse-to-cosmos", Connection = "QueueAddress")]string myQueueItem, TraceWriter log)
#elif RELEASE
[FunctionName("PRODIndividualParse")]
[Timeout("10:00:00")]
public async static Task Run([QueueTrigger("prod-cosmos-parse", Connection = "QueueAddress")]string myQueueItem, TraceWriter log)
#elif DEV
[FunctionName("DEVIndividualParse")]
[Timeout("10:00:00")]
public async static Task Run([QueueTrigger("dev-cosmos-parse", Connection = "QueueAddress")]string myQueueItem, TraceWriter log)
#endif
(не знаю, как правильно отформатировать это с помощью знаков "#")
Я попытался добавить пару ключ-значение в настройках среды разработки: CONFIGURATION DEV безрезультатно.
1 ответ
Имя очереди можно узнать из настроек приложения. Добавить настройку с именем например myqueuename
а затем определить вашу функцию как
[FunctionName("IndividualParse")]
[Timeout("10:00:00")]
public async static Task Run([QueueTrigger("%myqueuename%", Connection = "QueueAddress")]
string myQueueItem, TraceWriter log)
Очевидно, что вы можете установить различные значения для сред Dev и Test Vs Prod, если они находятся в отдельных приложениях функций или слотах.