逻辑应用程序 - 周末停止 Blob 触发器 运行

Logic Apps - Stop Blob triggers running on weekends

我有一个逻辑应用程序,它在添加或修改 blob 时触发。它每隔几分钟检查一次。鉴于逻辑应用程序对触发器的每个 运行 收费(我认为),如何在周末停止触发器 运行ning?我在 here

上看不到任何内容

您可以在计时器触发器函数中创建一个 azure timer trigger function with the cron expression to schedule the function run every Friday evening and call this api 来禁用您的逻辑应用程序。

例如,cron 表达式可以是:

59 59 23 * * Fri

然后用 cron 表达式创建另一个定时器触发器函数来安排函数 运行 每个星期一早上,并在定时器触发器函数中调用此 api 以启用您的逻辑应用程序。

例如,cron 表达式可以是:

0 0 0 * * Mon

另一种解法:

你可以在blob触发器之后(逻辑将执行的操作之前)添加一个条件,如下所示: "dayOfWeek()"的表达式为:

dayOfWeek(utcNow())

在 dayOfWeek() 方法的响应中,星期日 --> 0,星期一 --> 1。

所以在上面的条件下,大部分的动作只会在周一到周五运行。在周六和周日,您只需为触发器付费,而无需为逻辑应用中的大部分操作付费。但如果使用此解决方案,您需要注意时区。您可以在此 link.

中了解有关逻辑应用定价的更多信息

顺便说一句,我认为第二种解决方案可能更适合您。因为在第一个解决方案中我们无法在 azure 函数中轻松调用 api,所以我们必须在请求 api.[ 之前获取访问令牌(在 implicit flow 中) =18=]

您还可以使用 Powershell 禁用您的逻辑应用程序。 运行 的一种选择是来自具有托管身份的 Azure Functions,您可以向所需的逻辑应用授予权限。

Set-AzLogicApp -ResourceGroupName "MyResourceGroup" -Name "MyLogicApp" -State Disabled -Force

要启用,只需将状态选项切换为 "Enabled"