Azure Function App 中的 Swagger 终结点 return HTTP 500

Swagger Endpoint return HTTP 500 in Azure Function App

我有一个启用了 swagger 的 azure 函数应用程序(.NET 5 隔离)。在发布和调试版本中,一切都在本地正常工作。一旦部署到 Azure,实际功能本身就可以正常工作(它们都是 HTTP 触发器)。但是,none 的 swagger 端点有效。它们都是 return 状态代码 500 和错误消息

Object reference not set to an instance of an object

我搜索了互联网,结果完全是空的。 App Insights 没有告诉我任何信息。有人 运行 参与过这个吗?提前致谢。

文件 requirements.txt 必须用库手动修改, 如果这不起作用,请前往 appinsight => 实时指标

我已经弄明白了。诀窍是了解它在本地运行良好,但在部署到 Azure 时会失败。我向自己提出的问题是“在 Azure 中与 运行 在本地有什么不同?”原来是HTTP触发授权级别。通过将所有 HTTP 触发器授权级别切换为匿名,OpenAPI UI 端点实际上可以工作。在不查看 Open API 包代码的情况下,我假设需要以某种方式存在匿名授权才能成功执行反射代码。

因此,这意味着如果您希望 Open API 在部署时为您的功能应用程序工作,您需要做一些其他事情来保护 API 表面,而不是简单地依赖功能键.可以说,无论如何你都应该这样做。