5

我有一个 Azure 基础架构:

2 个 HTTP 函数 -> 事件中心 -> 2 个函数 -> 表存储

(所以两个 http 函数向事件中心发送消息,两个函数由事件中心中的消息触发,其中一个将消息保存在表存储中)

基础结构每天由 Azure ARM 模板使用 Azure CLI 自动创建。最近两个月我没有改变逻辑,但自四月初以来,我注意到了新的、奇怪的行为。

在设置结束时,将自动执行 E2E 测试。他们正在发送一些消息,并在一段时间后检查消息是否在表存储中。

这就是问题所在:自四月初以来,这些测试几乎总是失败!而且我没有改变基础设施的功能或模板.json的逻辑。

看起来应该由事件中心触发的函数根本没有执行!我已经找到了一种解决方法——如果我去 Azure 门户并手动运行这些函数(代码编辑器上方的“运行”按钮),那么这些函数终于开始工作了!

还有其他人遇到这个问题吗?有没有办法通过 Azure CLI 或 REST 接口自动、直接运行非 HTTP 触发功能?

4

1 回答 1

3

It seems that problem is already quite well known: https://github.com/Azure/Azure-Functions/issues/210

I'm using currently workaround from this issue, i.e. calling Azure CLI's method to synchronize function triggers after creating infrastructure and zip pushing of functions:

az resource invoke-action --resource-group <resourceGrouName> --action syncfunctiontriggers --name <functionAppName> --resource-type Microsoft.Web/sites
于 2018-04-23T17:46:46.723 回答