我对逻辑应用程序相当陌生,我正在寻找一种解决方案来跨 Azure 环境推广我的应用程序。
我有两个 Azure 资源组,一个在开发中,另一个在生产中。我的逻辑应用程序并不太复杂。他们通常需要从 SharePoint 列表读取数据,执行一些逻辑,然后写回 SharePoint 列表。
我在网上读到,我可以使用 VS Code 管理我的逻辑应用程序,这似乎有效,但是当我需要编辑我的连接时,麻烦就开始了。我的两个应用程序都有自己需要连接的 SharePoint 列表(开发/产品)。
所以我的问题是,我可以将我的逻辑应用程序代码存储在代码存储库(Azure DevOps)中,然后使用管道更新每个环境(在本例中为 dev/prod)的connections.json 文件。有谁有一个示例来说明这是如何工作的,或者是否有更好的方法来跨环境更新逻辑应用程序?
更新开发应用程序然后手动对生产应用程序进行相同的更改可能非常乏味/容易出错。我知道在 Power Automate 中,您可以使用环境变量制定解决方案,但是我需要使用逻辑应用程序来避免进行 http 调用的成本。
工具:
我正在寻找一种跨环境使用 CI/CD 进行逻辑应用的方法。
所以我的问题是,我可以将我的逻辑应用程序代码存储在代码存储库(Azure DevOps)中,然后使用管道更新每个环境(在本例中为 dev/prod)的connections.json 文件。有谁有一个示例来说明这是如何工作的,或者是否有更好的方法来跨环境更新逻辑应用程序?
是的,它可以在跨环境的 Azure 逻辑应用的 DevOps 管道中实现。
在
connections.json
中,您可以将占位符 #{SharePointSiteUrl}#
设置为实际的 SharePoint 网站 URL:
{
"connections": {
"shared_sharepointonline": {
"connectionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/connections/shared-sharepointonline",
"connectionName": "shared-sharepointonline",
"id": "/subscriptions/{subscriptionId}/providers/Microsoft.Web/locations/westus/managedApis/sharepointonline",
"api": {
"name": "sharepointonline",
"displayName": "SharePoint Online",
"iconUri": "https://az818438.vo.msecnd.net/icons/sharepointonline.png",
"brandColor": "0078d7"
},
"displayName": "SharePoint",
"parameterValues": {
"token:TenantId": "your-tenant-id",
"token:SiteUrl": "#{SharePointSiteUrl}#",
"token:OnPremises": false
}
}
}
}
在 Azure DevOps 管道中,您可以为每个环境维护一组变量。例如,您可以有一个名为
SharePointSiteUrl
的变量,对于您的 dev
和 prod
环境具有不同的值,使用扩展任务 replace tokens 将占位符替换为实际的共享点站点 url。
- task: replacetokens@5
displayName: 'Replace tokens'
inputs:
rootDirectory: '$(System.DefaultWorkingDirectory)'
targetFiles: '**/connections.json'
encoding: 'auto'
writeBOM: true
actionOnMissing: 'warn'
keepToken: false
tokenPrefix: '#{'
tokenSuffix: '}#'
这样,您就可以为所有环境维护一个
connections.json
文件,并使用 CI/CD 管道根据目标环境更新连接详细信息。
Sharepoint 没有确切的 CICD 示例,这里有一些 samples 显示了一些可用于为 Azure 逻辑应用实现持续集成 (CI) 和持续交付 (CD) 管道的策略。希望有帮助!