3

我有一个带有计时器触发器的 Azure 函数。时间表是“0 0 18 * * MON-FRI”。我可以手动运行它,但它不会自动触发。我已经看到一些答案说应用服务计划不能是“经典”,但我没有看到该选项。我的函数应用的应用服务计划是基于消耗的。有什么建议吗?

这是function.json:

{
  "generatedBy": "Microsoft.NET.Sdk.Functions-1.0.24",
  "configurationSource": "attributes",
  "bindings": [
    {
      "type": "timerTrigger",
      "schedule": "0 0 18 * * MON-FRI",
      "useMonitor": true,
      "runOnStartup": false,
      "name": "myTimer"
    }
  ],
  "disabled": false,
  "scriptFile": "../bin/MyApp.dll",
  "entryPoint": "MyApp.ProcessOptions.Run"
}
4

1 回答 1

2

如果它位于 中App Service Plan,则需要确保启用Always On 。

Consumption模式中,没有Always On. 相反,您的 Function App 应该在计时器到期时自动唤醒。为此,您的触发器需要是synced,这通常在各种情况下自动发生:

a) 如果您使用门户网站对功能进行更改

b) 如果您使用 msdeploy、Kudu git deploy 或 Kudu 的 zipdeploy ( /api/zipdeploy) 部署 Function App

c) 如果您在门户中单击 Function App 名称旁边的小刷新图标

注意默认情况下,时间表使用 UTC 时间,因此在设置每日时间表时要注意这一点(每小时触发无关紧要)。您可以通过设置将其更改为特定时区WEBSITE_TIME_ZONE。请参阅此处了解更多信息。

更多细节,你可以参考这篇文章

于 2018-12-10T08:40:35.357 回答