我们目前有以下在部署时Web.Release.config
转换的文件。Web.config
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
<elmah>
<errorLog xdt:Transform="Remove" />
<errorMail xdt:Transform="Remove" />
<errorMail xdt:Transform="Insert" from="reports@companyxyz.com" to="a23cv@companyxyzteam.slack.com" subject="Dashboard Error" async="true" smtpPort="587" smtpServer="smtp.sendgrid.net" userName="apikey" password="password123" />
</elmah>
</configuration>
如您所见,配置文件包含敏感信息,例如password
.
管道工件包含脚本、内容、捆绑包以及与此问题最相关的Web.Debug.config
,Web.Release.config
和Web.config
:
发布工件时,发布管道会触发 Azure 应用服务任务部署:
steps:
- task: AzureRmWebAppDeployment@4
displayName: 'Deploy Azure App Service'
inputs:
azureSubscription: '$(Parameters.ConnectedServiceName)'
appType: '$(Parameters.WebAppKind)'
WebAppName: '$(Parameters.WebAppName)'
enableCustomDeployment: true
TakeAppOfflineFlag: false
RenameFilesFlag: false
enableXmlTransform: true
而不是 XML 转换是改变属性password
,甚至是to
电子邮件属性,我们希望将它们存储为变量,可能在发布管道中(可能创建一个elmah
包含这些属性/值的组)并使用这些变量来转换Web.config
文件。当然,我们仍然希望出现其他 XML 转换设置,例如,但我们希望使用变量而不是 XML 文件来转换<system.web>
像 in 这样的属性。<elmah>
我们怎样才能做到这一点?我知道如何创建变量,但我不确定如何或是否可以Web.config
使用变量而不是Web.Debug.config
或Web.Release.config
有没有可以做到这一点的设置/任务?