Pal*_*udi 18 azure azure-functions
我正在开发Azure函数计时器Job,我需要从appsettings获取cron表达式.请告诉我,如何从Azure功能中的appsettings中获取价值.我希望每隔30分钟从上午9:00到下午12:00运行我的天蓝色功能
{
"disabled": false,
"bindings": [
{
"name": "timerInfo",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 * * * * *"
}
]
}
Run Code Online (Sandbox Code Playgroud)
Gar*_*son 25
如果您正在使用VS2017函数工具并在.NET项目中定义函数(而不是直接在Azure门户中),则可以AppSettings使用%语法来获取间隔:
[FunctionName("MyTimerFunction")]
public static void Run([TimerTrigger("%TimerInterval%")] TimerInfo myTimer, TraceWriter log, ..
Run Code Online (Sandbox Code Playgroud)
然后在您的应用设置中指定所需的CRON格式间隔,例如.在local.settings.json
{
"Values" : {
"TimerInterval" : "0 30 9-12 * * *"
}
}
Run Code Online (Sandbox Code Playgroud)
Kar*_* VK 21
将您的日程安排为"schedule": "%EmailScheduleTriggerTime%",然后在appsetting.json中,您可以将EmailScheduleTriggerTime值设置为"0 30 9-12 * * *"
{
"IsEncrypted": false,
"Values": {
"EmailScheduleTriggerTime": "0 30 9-12 * * *", //Run every 30 minutes from 9:00 to 12:00
},
"ConnectionStrings": {
"DefaultConnection": ""
}
}
[FunctionName("TimerfunctionApp")]
public static void Run([TimerTrigger("%EmailScheduleTriggerTime%")] TimerInfo TInfo, TraceWriter log)
Run Code Online (Sandbox Code Playgroud)
小智 12
要添加到先前的答案,您可以appsettings.json使用%语法从Values配置文件 ( ) 文件中的任何字段获取任何值- 不仅来自配置对象。
例如:
appsettings.json:
{
"ScheduleConfiguration": {
"FunctionOne": {
"CronExpression": "0 40 2 * * *"
}
}
}
Run Code Online (Sandbox Code Playgroud)
Functions.cs:
/// <summary>
/// %ScheduleConfiguration:FunctionOne:CronExpression%
/// - e.g. "0 40 2 * * *" - executes at 02:40:00am every day
/// </summary>
[FunctionName("FunctionOne")]
public async Task FunctionOne(
[TimerTrigger("%ScheduleConfiguration:FunctionOne:CronExpression%")]
TimerInfo timerInfo)
{
// Azure function code
}
Run Code Online (Sandbox Code Playgroud)
由于这篇文章已经有很好的答案,我想在这里分享我的经验。我试图通过在文件中添加 cron 表达式来在本地运行应用程序,appsettings.json但是当我运行函数应用程序时,我总是收到如下错误
“EmployeeTimerTrigger”函数出现错误:Microsoft.Azure.WebJobs.Host:索引方法“EmployeeTimerTrigger”出错。Microsoft.Azure.WebJobs.Host:“%EmployeeTimerTrigger%”未解析为值。
因此,为了解决这个问题,我们需要做的是将 cron 表达式从 转移appsettings.json到local.settings.json,它工作得很好,我能够在本地测试它。
函数应用从 Azure 上函数应用本身的应用程序设置中读取计时器触发器设置。
当你计划在 azure 中部署函数应用时,需要在 Azure 门户中函数应用的应用程序设置中进行一些小更改。
您可以通过在 Azure 门户 -> 配置 -> 应用程序设置中选择函数应用来导航到这些设置
您需要添加的第一个设置是您希望计时器触发器运行的时区,这是一个相同的示例
注意:请注意这些值区分大小写
现在,我们将在此处添加的第二个设置是计时器触发功能,在此图像中,您将看到计时器将在东部标准时间上午 10:00 和下午 2:00 运行。
您问为什么是东部标准时间?好吧,请记住我们的第一个设置是针对网站时区的,因此这两个设置是协同工作的。
注意:计时器触发器的名称应与您的函数应用程序中的名称相匹配,请注意这些值区分大小写,并且应与您在计时器触发器函数中的名称完全匹配。
添加这些设置后,请不要忘记保存更改,现在您就可以部署函数应用了。
我希望这个答案有助于在本地部署和运行计时器功能。
| 归档时间: |
|
| 查看次数: |
5013 次 |
| 最近记录: |