Как передать часовой пояс в функцию Azure с помощью таймера - PullRequest
1 голос
/ 28 февраля 2020

Я создал функцию azure, которую нужно запустить в 11:00 по восточному поясному времени. Я понимаю, что триггеры таймера используют UT C, но есть ли способ передать в 11:00 функцию запуска для удобства чтения?

Например, вот мой метод запуска, можно ли передать 11:00, где X сидит и указывает часовой пояс?:

public static void Run([TimerTrigger("0 0 X * * *")]TimerInfo myTimer, TraceWriter log)

1 Ответ

1 голос
/ 28 февраля 2020

Azure Функция основана на изолированной программной среде веб-приложения. Веб-приложение требует, чтобы вы сначала установили часовой пояс в настройках env. Атрибут timetrigger является частью объявления функции. Переменные среды будут проверены здесь. Если вы не зададите переменные среды относительно часового пояса заранее, они будут обработаны в соответствии со временем по умолчанию UT C.

Переменная env происходит из другого места, когда она запускается локально и запускается azure.

Например, если вы хотите установить время EST.

Для локального вам нужно установить его в local.settings. json. например:

{
    "IsEncrypted": false,
    "Values": {
      "AzureWebJobsStorage": "UseDevelopmentStorage=true",
      "FUNCTIONS_WORKER_RUNTIME": "dotnet",
      "WEBSITE_TIME_ZONE": "US Eastern Standard Time"
    }
}

Вкл. Azure, установите часовой пояс в этом месте (не забудьте сохранить изменения):

enter image description here

enter image description here


С это сделать c, EST = GMT - 5. Так что в вашем случае, если вы находитесь в часовой пояс по умолчанию, вы можете установить CRON как 0 0 6 * * *. Поскольку час не может быть отрицательным. Так что это справедливо для вашей ситуации, но не обязательно применимо к другим ситуациям. Я предлагаю вам использовать метод, который я рекомендовал в начале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...