是否有推荐的方法通过CI/CD管道创建和部署Apigee API代理捆绑包(我使用的是Azure DevOps(?
我想避免在没有任何更改的情况下创建和部署过多的API代理捆绑包。我已经测试过了,我看到相同的捆绑包仍然会创建一个新的修订版。
到目前为止,我自己的解决方案是编写一个PowerShell脚本,使用apigeecli下载当前捆绑包,并将其与我在本地的repo中的apiproxy
进行比较。如果不同,我将创建并部署一个新的API代理捆绑包。
有人看到更好的东西了吗?
我主要使用Gitlab进行自动化,但我会分享我的想法,这可能有助于您的具体案例。
所以我们使用版本控制来管理我们的顶点回购。我已经设置了一个gitlab管道,每当我们推送到存储库时,它都会检查差异,只有在有任何更改的情况下,我们才会将代理重新部署到Apigee。通常,当触发管道时,我们会检查目标服务器、代理和共享流是否有任何更改,如果检测到更改,我们会查看部署的修订版和环境。
通过我的部署脚本,我能够获得这些更改的列表,并将它们作为CHANGES
变量传递给管道。这意味着将只部署这些修改后的代理。
在我的管道上,我可以执行类似于git diff --name-only $CI_COMMIT_SHA..$CI_COMMIT_BEFORE_SHA > /changes.txt
的操作,并将更改文件的内容传递给要部署的CHANGES
。