问题:
我想设置一个CI / CD,每当我发布对SF API的更改时,它都会自动更新Azure API Management实例中API的端点。
我该如何计划呢?
我将更改推送到我的GitHub仓库,它已构建,并且已部署。该版本的第二步是PowerShell脚本,该脚本使用新部署的SF API的Swagger文档更新现有的Azure APIM API。
有什么问题?
好吧,除非您在Azure APIM API中定义了端点,否则无法通过网关。我可以在默认情况下在那里定义一个Swagger端点,但是每当运行PowerShell更新时,它都将删除该端点,因为生成的Swagger中没有自己,这完全合乎逻辑。
如果我以某种方式暴露没有网关的Swagger端点,那就会产生安全威胁,并且会破坏Azure APIM网关的目的。
我的设置?
传入请求 - > Azure APIM - >服务结构应用程序(公共/内部)
在这方面的任何帮助都非常感谢,因为我有点被阻止:-)
您可以在APIM中创建单独的API,以便访问swagger AT SF端,并且不要将此API更新为CI / CD的一部分。如果甚至可以从外部看作为所述API的一部分。例如,如果您的主API后缀为“/ myApi”,那么您可以将swagger API后缀定义为“/myApi/swagger.json”(其中的操作可能包含空URL模板)。
或者您可以作为CI / CD的一部分在新导入的API中重新创建swagger访问操作。稍后将使用此端点来获取下一次导入的swagger。