Azure 通过Powershell将函数应用导入API管理

Azure 通过Powershell将函数应用导入API管理,azure,powershell,azure-api-management,azure-function-app,Azure,Powershell,Azure Api Management,Azure Function App,作为我们CI/CD管道的一部分,我希望使用PowerShell向Azure API管理注册我们的Azure函数应用程序。从文档中可以看出,cmdlet应该支持这一点,但-SpecificationFormat参数中似乎没有on选项可从现有函数应用程序导入 我确实看到有人问过类似的问题,但目前似乎不可能 我确实试图通过API定义刀片公开函数应用程序OpenAPI文档,但这似乎不起作用,因为函数应用程序托管在隔离层私有应用程序服务环境中 有没有人知道是否有其他选项可以通过编程方式将函数应用程序导入A

作为我们CI/CD管道的一部分,我希望使用PowerShell向Azure API管理注册我们的Azure函数应用程序。从文档中可以看出,cmdlet应该支持这一点,但-SpecificationFormat参数中似乎没有on选项可从现有函数应用程序导入

我确实看到有人问过类似的问题,但目前似乎不可能

我确实试图通过API定义刀片公开函数应用程序OpenAPI文档,但这似乎不起作用,因为函数应用程序托管在隔离层私有应用程序服务环境中

有没有人知道是否有其他选项可以通过编程方式将函数应用程序导入APIM

更新:


我已经查看了Github上的库,它确实支持发布Swagger API定义,我可以使用cmdlet使用该定义,但如果可能,我仍然需要Azure本机解决方案。

看起来目前不支持此功能,如对theis的响应中所述

我已经就这个问题与APIM团队进行了内部联系 并收到没有后端终结点的确认 目前可用于此操作(门户使用 前端上的Javascript(因此有22个调用)

作为下一步,请考虑提交一个特性请求 APIM的Azure UserVoice(或对现有的用户进行投票,如果它存在的话) 团队审查其产品路线图的优先级

只需通过注册新的API就可以实现这一点

或者使用公开OpenAPI定义的URL

Import-AzApiManagementApi -Context $ApiMgmtContext -SpecificationFormat "OpenApi" -SpecificationUrl [URL-TO-OPENAPI-DEFINITION] -Path "api"

虽然不是一个干净的实现,但它似乎可以工作。

我制作了一个脚本,使过程更简单。只需使用指定资源组、apim、操作等的参数输入文件运行脚本,然后使用该文件运行脚本


注意:从现在开始,脚本需要更好的错误处理(从子流程获取stderr并显示)

虽然我已经能够使用Azure函数扩展插件来导入函数应用程序,但它只会创建一个完整的新API,其中所有函数都映射到操作。似乎没有办法将函数作为操作从函数应用程序导入现有API。
Import-AzApiManagementApi -Context $ApiMgmtContext -SpecificationFormat "OpenApi" -SpecificationUrl [URL-TO-OPENAPI-DEFINITION] -Path "api"