Функции Azure — значение не может быть нулевым. (Параметр ‘ConnectionString’)

#javascript #azure #azure-functions

#javascript #azure #azure-функции

Вопрос:

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

Однако, дела обстоят не очень хорошо. Я получаю следующую ошибку, даже если я не использую базу данных:

 [Error] Executed 'Functions.<func-name>' (Failed, Id=<func-id>, Duration=1ms)Value cannot be null. (Parameter 'connectionString')
  

В настоящее время я пытаюсь выполнить следующую функцию:

 module.exports = async function(context, req) {
    context.res = {
        body: "Success!"
    };
};
  

Тот же результат. Я не могу его запустить.

Я добавил строку подключения в конфигурацию -> Строки подключения (я подумал, что пропустил это, основываясь на сообщении).

Мой файл functions.json выглядит так:

 {
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 0 * * * *"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ]
}
  

Я также попытался запустить функцию C # — тот же результат.

Итак, что я пропустил?

Ответ №1:

Ведение журнала из Microsoft в it’s finest.

Отсутствовал параметр приложения AzureWebJobsStorage.

Решение:

  1. Создайте учетную запись хранилища (или используйте существующую)
  2. Перейдите к конфигурации вашего функционального приложения
  3. Добавьте AzureWebJobsStorage со строкой подключения к вашей учетной записи хранения (можно найти в разделе Обзор учетной записи хранения -> Ключи доступа)

Ответ №2:

В моем случае ошибка была Microsoft.Extensions.Configuration.AzureAppConfiguration value cannot be null: parameter (connectionString)

Это произошло потому, что я установил Microsoft.Расширения.Конфигурация.AzureAppConfiguration в моей функции для преобразования конфигурации в мою основную функцию. В Startup.cs строке string cs = Environment.GetEnvironmentVariable("MyDifferentConnectionString"); не удалось найти переменную среды для MyDifferentConnectionString , поэтому ее необходимо было добавить в конфигурацию функции.

  1. Перейдите к конфигурации приложения (или создайте ее)
  2. Ключи доступа (в настройках)
  3. Скопировать строку подключения
  4. Перейдите к своей функции
  5. Конфигурация (в разделе Настройки)
  6. Добавьте новые настройки приложения с именем вашей переменной среды и вставьте значение
  7. Сохраните и перезапустите вашу функцию

Комментарии:

1. Я подтвердил, что это решение решает проблему подключения службы конфигурации приложений Azure к функциям Azure.