Bar*_*osz 5 azure azure-api-management azure-functions
我有一个功能应用程序:
我还为函数应用程序设置了Azure API 管理服务,其中HTTP 触发函数定义了其端点。
我正在尝试按照此处的指南手动触发计时器触发功能之一https://learn.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http
然而,尽管看似正确的 URL 和x-functions-key
.
钥匙:
请求:
我还注意到:
x-functions-key
标题,那么我会得到401 Unauthorized
结果403 Forbidden
.是否与为函数应用程序设置的API管理服务有关?
我该如何进一步解决这个问题?
我已经设法解决了它。
事实证明,Azure Functions计时器触发器需要六个部分的cron表达式(我只知道五部分的样式)
如果没有它,它就无法工作 -遗憾的是,这在 UI 中不容易被注意到。通过调查Application Insights日志,我意识到:
功能页面显示一切正常:
更改 CRON 格式解决了 404 问题,我开始收到 202 Accepted 响应。
即使响应是 202 Accepted,触发也无法正常工作,因为我的函数返回类型是Task<IActionResult>
计时器触发函数不接受的。
同样,只有 ApplicationInsights 显示有任何问题:
“MonkeyUserRandom”函数出现错误:Microsoft.Azure.WebJobs.Host:索引方法“MonkeyUserRandom”出错。Microsoft.Azure.WebJobs.Host:无法将参数“$return”绑定到 IActionResult& 类型。确保绑定支持参数类型。如果您使用绑定扩展(例如 Azure 存储、ServiceBus、计时器等),请确保您已在启动代码中调用扩展的注册方法(例如 builder.AddAzureStorage()、builder.AddServiceBus( )、builder.AddTimers() 等)。
这是“手动触发非 http 功能不起作用”的额外提示。
归档时间: |
|
查看次数: |
1185 次 |
最近记录: |