azure - 在 ARM 模板中的属性名称值中调用引用/部署函数
问题描述
我正在尝试在单个 ARM 模板中创建 Sql 服务器和 Sql 数据库,如下所示
Sql Server -- 使用链接模板方法和类型资源部署
Sql 数据库——用于创建依赖于链接模板名称的数据库的新资源部分。
下面是我的部分 ARM 模板脚本(仅限资源部分)
"resources": [
{
"name": "sqlServerDeployment",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-06-01",
"resourceGroup": "[resourceGroup().name]",
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[parameters('sqlserver_Templatepath')]",
"contentVersion": "1.0.0.0"
},
"parametersLink": {
"contentVersion": "1.0.0.0",
"uri": "[parameters('sqlserver_parameters_Templatepath')]"
}
}
},
{
"comments": "If Elastic Pool Name is defined, then curent database will be added to elastic pool.",
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2020-08-01-preview",
"name": "[concat('SampleSqlServer1-Test','/', parameters('databasename')[copyIndex()])]",
"location": "[parameters('location')]",
"tags": "[parameters('tagsArray')]",
"sku": {
"name": "[parameters('skutier')]",
"tier": "[parameters('skutier')]"
},
"properties": {
"collation": "[parameters('collation')]",
"sampleName": "[parameters('databasename')]",
"zoneRedundant": "[parameters('zoneRedundant')]",
"elasticPoolId": "[if(not(empty(parameters('elasticPoolName'))),reference(resourceId('Microsoft.Sql/servers/elasticpools',parameters('elasticPoolName')),'2014-04-01'),'')]"
},
"copy": {
"name": "createDatabases",
"count": "[length(parameters('databasename'))]"
},
"dependsOn": [ "sqlServerDeployment" ]
}
]
我的查询:
目前,我正在硬编码 Sql Server 名称(SampleSqlServer1-Test),我在 Sql 数据库资源部分的sqlserver_parameters_Templatepath中传递它。
"name": "[concat('SampleSqlServer1-Test','/', parameters('databasename')[copyIndex()])]",
但是如何从该模板的上述参数模板/输出中自动获取相同的 Sql 服务器名称并将其放入 Sqldatabase 的 Name 属性值中?是否可以在属性“名称”值中调用引用函数。像下面的东西
"name": "[concat(reference/resourceId(<output of sqlServerDeployment>).SQLSERVERNAME,'/', parameters('databasename')[copyIndex()])]",
是否可以使用属性及其参数调用部署函数?说 sqlservername 是链接模板参数文件中的参数名称。如下所示。
"name": "[concat(deployment().properties.parameters.sqlservername,'/', parameters('databasename')[copyIndex()])]",
解决方案
推荐阅读
- mysql - 用虚拟数据填充数据库
- kubernetes - 从 Kubernetes 集群获取容器资源指标
- javascript - Pie chart.js - 显示所有 3 个段边框
- mocha.js - 无法将 api 请求中的参数传递到外部
- dynamics-crm - 如何向 Dynamics 365 中的用户授予对实体的特定记录的读写访问请求?
- opc-ua - 警报和事件
- ruby-on-rails - Rails 3.2 - 无法加载初始化文件的模块
- regex - 将字符串分解为单个元素并测试字符类型 - NUM - LETTER - SPECIAL - Excel VBA
- java - 当有人在我的scanner.nextInt() 中输入无效字符时,如何防止出现错误?
- flutter - 在 Children 中添加 Padding
在颤振中