CASE
больше похожа на инструкцию switch. Он имеет два синтаксиса, которые вы можете использовать. Первый позволяет использовать любые команды сравнения, которые вы хотите:
CASE
WHEN user_role = 'Manager' then 4
WHEN user_name = 'Tom' then 27
WHEN columnA <> columnB then 99
ELSE -1 --unknown
END
Второй стиль - это когда вы только изучаете одно значение и немного более кратким:
CASE user_role
WHEN 'Manager' then 4
WHEN 'Part Time' then 7
ELSE -1 --unknown
END
Итак, мы наконец выяснили, как это сделать.
Мы вызываем скрипт powershell из terraform с чем-то вроде этого:
resource "azurerm_virtual_machine_extension" "test" {
count = "1"
name = "xxx"
location = "xxx"
resource_group_name = "xxx"
virtual_machine_name = "xxx"
publisher = "Microsoft.Powershell"
type = "DSC"
type_handler_version = "2.73"
auto_upgrade_minor_version = true
settings = <<SETTINGS
{
"configuration": {
"url": "package_url",
"script": "scriptforactivedomain.ps1",
"function": "functionname"
}
}
SETTINGS
tags {
environment = "xxx"
category = "xxx"
}
}
Нам просто нужно добавить фрагмент к область настроек:
settings = <<SETTINGS
{
"configuration": {
"url": "package_url",
"script": "scriptforactivedomain.ps1",
"function": "functionname"
},
"configurationData": {
"url": "url_to_file_with_configuration_data.psd1"
}
}
НАСТРОЙКИ
Затем в .psd1 мы просто укажем конфигурационные данные, как мы обычно делали:
@{
AllNodes = @(
@{
NodeName = 'localhost'
PSDscAllowPlainTextPassword = $true
}
)
}
В этом случай был довольно прост, но я отрывал свою голову!