运行 每月最后一天在 Azure 逻辑应用程序中重复触发

Run Recurrence trigger in Azure Logic App on the Last day of Every Month

我有一个 Azure 逻辑应用程序,每个月需要 运行。我正在使用重复触发器来触发我的逻辑应用程序。 我只想在每个月的最后一天 运行 我的逻辑应用程序。例如。 --> 2020 年 1 月 31 日、2020 年 2 月 29 日、2020 年 3 月 31 日,依此类推,直到 2020 年 12 月 31 日。然后 2021 年也一样。

任何想法都可以实现。 谢谢!

创建一个每天运行的逻辑应用程序。如果是“正确”的一天,让它执行执行实际工作的逻辑应用程序。

或者,看这个:

https://github.com/MicrosoftDocs/azure-docs/issues/26707

对于这个问题,我觉得有两个方案可以选择。我在下面详细描述了它们:

1. 您可以设置“Recurrence”,如下图所示。

将“间隔”和“频率”设置为每月,并设置“开始时间" 来自 2020-12-01T00:00:00Z。然后触发器会在下月初触发,然后每个月触发(这里假设当月的第一秒是上个月的最后一秒)。

请不要:我不确定逻辑应用程序中的“Recurrence”触发器是否与后端的 cron 表达式一起使用。所以我们不知道下一次触发是在下个月的第一天,还是在 30 天后的第二天(只需添加 30 天)。由于时间跨度是一个月,所以我现在无法测试结果。如果您想知道准确的答案,您可以 raise Azure 门户上的支持票来询问 Azure 支持团队。

2. 通过“When a HTTP request is received”设置逻辑应用触发器。您不需要定义任何其他配置,例如请求正文...只需要像下面的屏幕截图一样创建触发器。

然后 create 一个带有计时器触发器的 Azure 函数。创建函数时,请将 cron 表达式设置为 0 0 0 1 * *,如下图所示。

cron 表达式意味着该函数将在每个月的第一天(在 00:00:00)触发。

然后在你的定时器触发函数代码中,修改代码为:

using System;
using System.Net.Http;

public static void Run(TimerInfo myTimer, ILogger log)
{
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

    HttpClient client = new HttpClient();

    client.PostAsync("copy the trigger url of your logic app here", null);

}

保存函数,函数将在每个月的第一天(在00:00:00)触发。在函数代码中,它会请求你的逻辑应用的url来触发逻辑应用。

顺便说一句,当您创建 azure 函数应用程序时,您可以选择“Consumption plan”,这样您就不会为该函数支付太多费用。

已接受的答案无效。

来自 Microsoft documentation 的解决方案通过进入代码视图并设置触发器 json 也不起作用,LA 从未被触发。

但是有更优雅的解决方案:我不得不将 LA 设置为每天 运行 并添加一个简单的 if 条件和下面的表达式,它按预期工作,你甚至可以设置小时您希望您的 LA 被执行:

条件文本:@equals (dayOfMonth(addDays(utcNow(), 1)), 1)