更改Azure中从Visual Studio发布的Azure函数的计时器间隔
我有一个具有以下代码的函数应用程序更改Azure中从Visual Studio发布的Azure函数的计时器间隔,azure,timer,azure-functions,Azure,Timer,Azure Functions,我有一个具有以下代码的函数应用程序 public static void Run([TimerTrigger("*/5 * * * * *")]TimerInfo myTimer, TraceWriter log) 这将每5秒执行一次我的函数。在生产中,我希望间隔为30秒。在我将函数发布到Azure之后,它可以正常工作,并且每5秒运行一次 在函数设置的Integrate-页面顶部,有一条消息“您的应用程序当前处于只读模式,因为您已发布生成的Function.json。函数运行时将不接受对Fun
public static void Run([TimerTrigger("*/5 * * * * *")]TimerInfo myTimer, TraceWriter log)
这将每5秒执行一次我的函数。在生产中,我希望间隔为30秒。在我将函数发布到Azure之后,它可以正常工作,并且每5秒运行一次
在函数设置的Integrate-页面顶部,有一条消息“您的应用程序当前处于只读模式,因为您已发布生成的Function.json。函数运行时将不接受对Function.json所做的更改”,并且该页面变灰
那么,在开发和生产中,如何为计时器功能制定不同的时间表呢?让您的时间表可配置。在代码中这样声明:
[TimerTrigger(“%schedule%”)
然后添加名为
schedule
的开发设置和值为*/5****/code>的生产设置,以及值为*/30****/code>的生产设置。这应总结此处给出的其他答案:
配置本地设置
- 将文件添加到项目中李>
- 插入以下代码:
- 将触发器属性设置为
[TimerTrigger(“%schedule%”)
配置Azure
- 转到并转到功能,单击您的功能并选择应用程序设置
- 在应用程序设置中,选择添加新设置
- 输入
schedule
作为键,输入*/30*****
作为值
- 单击左上角的
保存
- 重新部署您的功能
这很有效。为了澄清,应将设置放在值设置“值”:{“AzureWebJobsStorage”:“xxx”,“AzureWebJobsDashboard”:“schedule”:“*/5*****”}我不确定将此“值”设置放在何处。我可以在“应用程序设置”中将其作为环境变量公开吗?是否有正式的文档记录?编辑:找到了。
{
"Values": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=XXXXXXXXXX;AccountKey=XXXXXXXXXX",
"AzureWebJobsDashboard": "DefaultEndpointsProtocol=https;AccountName=XXXXXXXXXX;AccountKey=XXXXXXXXXX",
"schedule": "*/5 * * * * *",
"//": "put additional settings in here"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*"
},
"ConnectionStrings": {
"SQLConnectionString": "XXXXXXXXXX"
}
}