Я привязываюсь к предоставлению Azure AD Domain Service с использованием Terraform, предоставляя Terraform Azure ARM шаблон, это потому, что Terrafrom не поддерживает выделенную Azure AD Domain Service изначально.
I экспортировали шаблон ARM и его параметры, один из параметров называется "notificationSettings"
, который имеет тип Object
и выглядит следующим образом:
"notificationSettings": {
"value": {
"notifyGlobalAdmins": "Enabled",
"notifyDcAdmins": "Enabled",
"additionalRecipients": []
}
}
Все остальные параметры strings
, и я могу передать без каких-либо проблем, например:
"apiVersion" = "2017-06-01"
Я попытался передать этот объект параметрам, как показано ниже:
"notificationSettings" = [{
"notifyGlobalAdmins" = "Enabled"
"notifyDcAdmins" ="Enabled"
"additionalRecipients" = []
}]
Однако, когда я выполняю terrafrom apply
, terrafrom жалуется и говорит :
Недопустимое значение для атрибута "параметры": элемент "messagesSettings": обязательная строка.
Как передать тип параметра Object в template body
?
Я также попытался передать весь параметр ARM json в виде файла для террафа с помощью параметра parameters_body
, как показано ниже:
parameters_body = "${file("${path.module}/temp/params.json")}"
, однако я получаю ошибку followig w При выполнении сценария terrafrom:
Содержимое запроса недопустимо и не может быть десериализовано: «Ошибка преобразования значения« https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json# »в тип« Microsoft. WindowsAzure .ResourceStack.Frontdoor.Data.Definitions.DeploymentParameterDefinition. Путь 'properties.parameters. $ Schema', строка 1, позиция 2952. '.
Ниже приведен файл params.json
:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"apiVersion": {
"value": "2017-06-01"
},
"sku": {
"value": "Standard"
"location": {
"value": "westus"
},
"notificationSettings": {
"value": {
"notifyGlobalAdmins": "Enabled",
"notifyDcAdmins": "Enabled",
"additionalRecipients": []
}
},
"subnetName": {
"value": "xxxx"
},
"vnetName": {
"value": "xxxx"
},
"vnetAddressPrefixes": {
"value": [
"10.0.1.0/24"
]
},
"subnetAddressPrefix": {
"value": "10.0.1.0/24"
},
"nsgName": {
"value": "xxxxx"
}
}
}