azure - 使用 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 应用程序(公共/内部)
- 理想情况下,内部 SF 应用程序不会通过网关公开,仅用于应用程序间通信。
非常感谢这方面的任何帮助,因为我在这方面有点受阻:-)
解决方案
您可以在 APIM 中创建一个单独的 API,只是为了在 SF 端访问 swagger,并且不要将此 API 更新为 CI/CD 的一部分。如果甚至可以从外部查看作为所述 API 的一部分。例如,如果您的主 API 后缀为“/myApi”,那么您的 swagger API 后缀可能定义为“/myApi/swagger.json”(其中的操作可能有空的 URL 模板)。
或者,您可以作为 CI/CD 的一部分在新导入的 API 中重新创建 swagger 访问操作。稍后将使用此端点来获取 swagger 以进行下一次导入。
推荐阅读
- kotlin - 类属性的运算符重载
- c# - 多个 CMD 命令 C#
- r - 标准化行中的名称并根据 R 中的相似行计算几何平均值
- xamarin.forms - Xamarin.Forms:离开主详细信息页面会导致之后的每个页面在标题中都有两个后退按钮
- javascript - Urql 错误:无法读取未定义的变量名的属性,并且我正确定义了它
- java - 使用 Java Streams 从另一个列表中搜索列表中的任何项目
- javascript - 排序数字数组并返回索引js
- javascript - 回调完成后从数据表中删除
- typescript - React-navigation v5 TypeScript:如何要求参数?
- c++ - OpenCL:clSetKernelArg 中的 CL_INVALID_ARG_SIZE