首页 > 解决方案 > 使用 Service Fabric 进行 Azure API 管理

问题描述

问题:

我想设置一个 CI/CD,每当我发布对我的 SF API 的更改时,它都会自动更新 Azure API 管理实例中 API 的端点。

我打算怎么做?

我将更改推送到我的 GitHub 存储库,它被构建并被部署。该版本的第二步是一个 PowerShell 脚本,它使用新部署的 SF API 的 Swagger 文档更新现有的 Azure APIM API。

有什么问题?

好吧,除非您在 Azure APIM API 中定义了端点,否则您无法通过网关。默认情况下,我可以在那里定义一个 Swagger 端点,但是每当运行 PowerShell 更新时,它都会删除该端点,因为生成的 Swagger 没有它自己,这是完全合乎逻辑的。

如果我以某种方式在没有网关的情况下公开 Swagger 端点,则会构成安全威胁,并且会破坏 Azure APIM 网关的用途。

我的设置?

传入请求 -> Azure APIM -> Service Fabric 应用程序(公共/内部)

非常感谢这方面的任何帮助,因为我在这方面有点受阻:-)

标签: azureazure-api-managementazure-service-fabric

解决方案


您可以在 APIM 中创建一个单独的 API,只是为了在 SF 端访问 swagger,并且不要将此 API 更新为 CI/CD 的一部分。如果甚至可以从外部查看作为所述 API 的一部分。例如,如果您的主 API 后缀为“/myApi”,那么您的 swagger API 后缀可能定义为“/myApi/swagger.json”(其中的操作可能有空的 URL 模板)。

或者,您可以作为 CI/CD 的一部分在新导入的 API 中重新创建 swagger 访问操作。稍后将使用此端点来获取 swagger 以进行下一次导入。


推荐阅读