Как установить переменные среды или входные данные в функциях timerTrigger Azure? - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь настроить timerTrigger функцию лазури

Мой function.json:

{
    "disabled": false,
    "bindings": [
        {
            "type": "timerTrigger",
            "direction": "in",
            "name": "sampleCronTrigger",
            "schedule": "*/5 * * * * *",
        }
    ],
    "entryPoint": "sampleCron",
    "scriptFile": "index.js"
}

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

Я могу определить переменные среды? Или, если есть какой-то способ, я могу передать входные данные функции, которая тоже работает.

Ответы [ 2 ]

1 голос
/ 15 марта 2019

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

Файл локальных настроек В файле local.settings.json хранятся настройки приложения, строки подключения и настройки для основных инструментов функций Azure. Настройки в файле local.settings.json используются только инструментами функций при локальном запуске. По умолчанию эти параметры не переносятся автоматически при публикации проекта в Azure. Используйте переключатель --publish-local-settings при публикации, чтобы убедиться, что эти параметры добавлены в приложение функций в Azure.

В функциях настройки приложения, такие как строки подключения службы, отображаются в качестве переменных среды во время выполнения. Вы можете получить доступ к этим настройкам, используя process.env, как показано здесь в функции GetEnvironmentVariable:

module.exports = function (context, myTimer) {
    var timeStamp = new Date().toISOString();

    context.log('Node.js timer trigger function ran!', timeStamp);
    context.log(GetEnvironmentVariable("AzureWebJobsStorage"));
    context.log(GetEnvironmentVariable("WEBSITE_SITE_NAME"));

    context.done();
};

function GetEnvironmentVariable(name)
{
    return name + ": " + process.env[name];
}

Существует несколько способов добавления, обновления и удаления настроек приложения-функции:

При локальном запуске настройки приложения считываются из файла проекта local.settings.json.

Рекомендации:

0 голосов
/ 22 марта 2019

Кроме того, для получения значений из local.settings.json, другой способ - создать объект IConfigurationRoot, используя ExecutionContext executionContext.

ExecutionContext может быть добавлен к определению функции:

[FunctionName("FunctionName")]
        public static async Task Run(
            [ServiceBusTrigger(...)]
            SomeMessage msg,
            ILogger log,
            ExecutionContext executionContext)
{
}

После этого вы можете создать экземпляр IConfigurationRoot, который вы можете дополнительно загрузить local.appsettings.json.

  var configurationRoot = new ConfigurationBuilder()
            .SetBasePath(executionContext.FunctionAppDirectory)
            .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();

С помощью объекта configurationRoot вы можете получить значения конфигурации:

 var value = configurationRoot["SomeKey"];

Пример local.settings.json:

{
 "IsEncrypted": false,
 "Values": {
  "AzureWebJobsStorage": "...",
  "FUNCTIONS_WORKER_RUNTIME": "dotnet",
  "SomeKey": "Value",
},
"Host": {
 "LocalHttpPort": "7071"
}
}
...