azure - API 管理开发人员门户 CI/CD
问题描述
我希望为开发人员门户中的内容设置 CI/CD 流,以便我们可以在开发环境中进行更改并将它们提升到更高的环境。根据我的发现,这似乎包含有关执行此操作的建议方式的信息:
https://docs.microsoft.com/en-us/azure/api-management/automate-portal-deployments
链接到这个回购:
https://github.com/Azure/api-management-developer-portal
据我所知,该存储库中的大部分代码。如果您想自行托管,则适用于开发人员门户本身。我对自托管不感兴趣,我只对其中包含的脚本感兴趣,因为它们允许我在环境之间提取和发布内容。是否有一个只包含脚本运行所需的代码的存储库(特别是 v3)?如果可能的话,我宁愿避免手动检查和删除与脚本无关的文件,因为我真的不知道/理解它们都是什么。
如果存在这样的存储库,它将启用我的理想方案,即分叉该存储库,运行“捕获”脚本,然后将提取的开发人员门户内容检入新存储库。
解决方案
那么,为什么不直接复制scripts.v3
文件夹并使用它呢?正如您所注意到的,如果您没有运行自托管版本,则不需要其他文件。所以你可以简单地复制粘贴它们。这些脚本只不过是用 node.js 编写的Azure REST API端点的客户端。它们可以完全独立于存储库的其余部分运行。
如果您不喜欢 node.js,您甚至可以编写自己的脚本来部署开发人员门户 - 使用您选择的语言。
开发者门户包含Content Types
其中包含Content Items
. 另一件事是存储在 APIM blob 存储中的媒体(字体、图像等)。这两件事决定了 Developer Portal 的外观。
所以你需要做的就是:
- 从一个实例中获取所有内容项(使用 Azure REST API)并将它们放到另一个 APIM
- 连接到 APIM blob 存储并获取所有媒体 blob 并将它们放入另一个 APIM blob 存储。您也可以使用 Azure REST API 获取 Blob 存储的 SAS url。
如果您仔细检查,这些脚本正在做完全相同的事情:
capture.js
- 将从给定 APIM 实例中获取所有文件并将其放入本地文件夹generate.js
- 将从您的本地文件夹中获取文件并将其放入您选择的 APIM 实例migrate.js
- 只是前两个脚本的组合。它将从一个实例中获取文件并将其放到另一个实例中。cleanup.js
reset
- 它与开发人员门户中的按钮相同。它恢复了默认状态。
推荐阅读
- python - 使用字典理解从字典列表中的选定字典创建新字典
- xml - 使用 XSLT 将带有前缀的 Soapenv、header、bodz 添加到 XML 标记
- android - 如何在 volley 中离线加载图像。volley 是自动缓存图像还是需要缓存图像?
- swift - 如何在swift中的swift框架中添加对象c SDK
- laravel - SQLSTATE[HY000]:一般错误:带有 FIND_IN_SET 的 2031
- android - 如何在android中使用房间加载db文件
- android - WebViewClient 不会打开在 shouldOverrideUrlLoading() 中处理的页面
- stata - 打开非常大的 Excel 文件
- css - 在 css 中闪烁边框 3 次(每个循环 1 秒)
- neo4j - Neo4j 浏览器不再工作