我的需求是托管API,后端是Function Apps。我还想要这些Api的文档(通过function-App代码自动生成(这样我就不必编写关于Api-management的文档))
我已经设置了应用程序接口管理,以便从通过我的FunctionApp中的URL公开的swagger文件(OpenAPI)导入API。
API看起来很好,我可以在API-Management上的Developer-Portal中看到它。但当我实际进行调用时,它失败了,返回401。
我猜测当API-Management发送请求时,发送给FunctionApp的令牌是错误的或丢失的。
我的问题是如何/在哪里配置在function应用上配置的令牌。
第二,这是否正确的做法?我正在使用Swagger块来配置/生成functionApp上的API文档,并将该swagger-json导入到API-Management (OpenAPI选项)中,或者是否有更好的方法通过api-management公开functionapp API的文档。
附注:如果我使用FunctionApps选项导入API,一切正常,但我没有得到我想要的文档。
提亚
发布于 2020-11-16 08:46:44
swagger的:考虑使用Swashbuckle请参阅此reference。NSwag是另一种选择。
Functions的:Function App可以匿名访问,也可以需要密钥。有多级密钥(reference)。应用程序的密钥位于应用程序密钥刀片中

(注意:微软正在调整用户界面,因此这可能会发生变化)。
各个功能的键可以在功能的功能键刀片中找到。
如果函数需要一个键,则必须将其与请求一起传递。
APIM接口:APIM中的每个接口必须是一个或多个产品的一部分。产品包含API。API包含端点/操作。对产品的访问权限由subscription keys控制。API和操作也可以决定是否需要订阅。如果需要订阅密钥,则必须随请求一起传递。
APIM支持全局(所有API )、API(所有操作)和单个API的策略。这些策略可能涉及检查先决条件(例如JWT持有者令牌),它们可以返回客户响应代码,如401。检查您是否提供了必要的先决条件。
在APIM中,当添加新的API时,您可以选择一个函数App并从现有的Azure函数中选择。它应该会自动设置函数auth (你不必自己处理键的传递)。
https://stackoverflow.com/questions/64848153
复制相似问题