我目前正在尝试编写一个ARM模板,该模板应在deploy.json文件中同时包含MySQL和PostgreSQL,然后有两个单独的参数文件,一个用于postgreSQL,一个用于MySQL。
我已经开始使用模板,但是它也无法按照我想要的方式工作,我无法弄清原因。在模板中,我同时拥有Microsoft.DBforMySQL /服务器和Microsoft.DBforPostgreSQL /服务器。
"resources": [
{
"type": "Microsoft.DBforMySQL/servers",
"apiVersion": "2017-12-01",
"name":
"location":
"sku": {
"name":
},
"properties": {
"version":
"administratorLogin":
"administratorLoginPassword":
"createMode":
"sslEnforcement":
"storageProfile": {
"storageGb":
"backupRetentionDays":
"geoRedundantBackup":
}
}
},
{
"type": "Microsoft.DBforPostgreSQL/servers",
"apiVersion": "2017-12-01",
"name":
"location":
"sku": {
"name":
},
"properties": {
"apiVersion":
"administratorLogin":
"administratorLoginPassword":
"createMode":
"sslEnforcement":
"storageProfile": {
"storageGb":
"backupRetentionDays":
"geoRedundantBackup":
}
},
我要实现的输出是,当您使用“ Postgre-parameter”文件时,它应该部署PostgreSQL数据库并读取资源“ Microsoft.DBforPostgreSQL / servers”,反之亦然。这可能还是我应该停止尝试?
答案 0 :(得分:1)
这是可能的,但不是神奇的(您似乎认为应该这样做)。您必须为此编写代码。最简单的方法是在资源中添加条件:
AbstractStreamOperator
您还必须将参数中的值映射到资源。
语法:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates