首页 > 解决方案 > 只有在另一个功能执行后才激活天蓝色功能?

问题描述

我有一个PostStartupSetup将在每次启动时运行的天蓝色功能

[FunctionName(nameof(PostStartupSetup))]
public async Task PostStartupSetup([TimerTrigger("0 0 0 29 2 6", RunOnStartup = true)]TimerInfo t)
{
    // do startup tasks
}

然后我有一些ServiceBusTrigger依赖于我PostStartupSetup完成的功能。PostStartupSetup是否有可能仅在我的功能完成执行后才激活这些功能?

标签: c#azureazure-functionsserverless

解决方案


没有直接的方法,但这里有几个选项:

  1. 如果您是专用计划,则可以使用Durable Functions,将一些共享变量设置为 true/false 以指示“启动”是否已完成,如果未完成,则所有其他功能将继续失败,并显示适当的错误代码。
  2. 如果你有消费计划,那么你可以使用一些便宜的选项,比如存储表来跨函数共享状态并做同样的事情。
  3. 您可以真正禁用(未测试)功能并动态启用它们:
    • 在部署时禁用所有功能。
    • 在里面通过更新应用程序设置来启用所有功能以启用所有功能PostStartupSetup()

推荐阅读