如何 test/run azure times 在本地运行

How to test/run azure times function locally

我在 Visual Studio 2019 年有一个解决方案,我添加了一个“Azure 函数”类型的新项目。我在那个项目中有一个函数,运行在计时器触发器上。

我想 运行 在调试期间只运行一次该功能,有没有办法做到这一点而无需摆弄计时器设置,这样它只会在我开始调试后 10 秒后启动?

该函数没有任何端点,也没有被任何东西调用,它的意义在于按计划 运行。

如果我要开始调试并将计时器设置为 运行 每 X 次,但我想 运行 在调试时只显式设置一次。

您可以通过向其管理员发送请求来执行计时器触发的功能url:

http://localhost:<your port>/admin/functions/<your function name>

示例POST:

POST /admin/functions/<function name> HTTP/1.1
Host: localhost:5800
x-functions-key: <your function key>
Content-Type: application/json

{}

您可以在 [TimerTrigger] 属性中使用 RunOnStartup 选项。例如:

public static void Run(
    [TimerTrigger("0 */5 * * * *", RunOnStartup = true)]TimerInfo myTimer, 
    ILogger log)
{
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}

您可以使用预处理器指令使其仅调试:

public static void Run([TimerTrigger("0 */5 * * * *",
#if DEBUG
    RunOnStartup = true
#endif
    )]TimerInfo myTimer, ILogger log)
{
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}