Функция Azure перестает работать, когда я использую зависимости, работает локально

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

Начал заново, загрузил пустую функцию - заработало, но как только я добавил свои библиотеки, перестало работать.

Затем я попытался удалить свои библиотеки и повторно загрузить функцию hello world, но она по-прежнему не работает.

Это host.json:

   {
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host.Results": "Information",
      "Function": "Information",
      "Host.Aggregator": "Information"
    },
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      }
    },
    "console": {
      "isEnabled": "true"
    }
  },
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=****;AccountKey=*****;BlobEndpoint=https://***.blob.core.windows.net/;TableEndpoint=https://*****.table.core.windows.net/;QueueEndpoint=https://****.queue.core.windows.net/;FileEndpoint=https://****.file.core.windows.net/",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  },
  "version": "2.0"
}

Код функции (без моих библиотек) работает только при первой загрузке.

[FunctionName("EmailQueueWorker")]
        //public static async Task Run(
        public static async Task Run(
            [QueueTrigger(queueName: "email", Connection = "AzureWebJobsStorage")] string queueItem,
            ILogger log
        )
        {
            log.LogWarning("Start run()");
        }

Что я делаю не так (или где найти журналы? Application Insights пуст)? Спасибо




Ответы (1)


Неделю или две назад я столкнулся с той же проблемой; Готов поспорить, проблема в вашем подключении к очереди. Для сравнения, это мой полный host.json для моей (рабочей) функции триггера очереди:

{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingSettings": {
                "isEnabled": true
            }
        },
        "fileLoggingMode": "always",
        "logLevel": {
            "default": "Information",
            "Host.Results": "Error",
            "Function": "Trace",
            "Host.Aggregator": "Trace"
        }
    }
}

Строка подключения

Наш раздел logLevel немного отличается, и вы заметите, что там нет никаких строк подключения. Я все еще новичок в Azure, но из того, что я узнал, они идут не туда.

В Visual Studio 2019 щелкните правой кнопкой мыши проект, а затем - Опубликовать. В разделе Действия щелкните Управление параметрами службы приложений Azure. Там вы можете добавить любые необходимые настройки строки подключения. Если вам нужно указать учетную запись хранения, в качестве имени параметра должно быть имя учетной записи хранения плюс _STORAGE. Например, если ваша учетная запись хранения была названа MyVault, тогда имя параметра будет MyVault_STORAGE.

В VS Code все немного по-другому. Вам нужно заглянуть в раздел «Azure», «Функции», а затем убедиться, что вы выбрали свою подписку Azure (а не локальную копию!) И перейти к функции «Параметры приложения», где вы можете добавить / изменить.

На портале Azure вы можете управлять настройками приложения сюда.

Журналы

На портале Azure начните с перехода к приложению-функции. Щелкните имя своей основной функции. Теперь в новом меню для этой функции в подменю «Функции» щелкните «Функции». Теперь вы увидите список всех различных функций, которые составляют функцию триггера очереди. Среди них должно быть EmailQueueWorker - щелкните по нему. Теперь вы должны увидеть количество выполнений, и вы можете нажать «Монитор» в левом меню, а затем «Журналы» в средней области. Вы можете запустить / остановить / сбросить по мере необходимости.

По какой-то причине я обнаружил, что я вижу фактические данные журнала намного быстрее, когда использую Visual Studio 2019 или VS Code для их потоковой передачи, а не веб-консоль. Иногда кажется, что с веб-консолью есть небольшая задержка.

person technonaut    schedule 18.09.2020