Как переменные Azure Terraform применяются для нескольких файлов TF, обрабатываемых вместе? - PullRequest
0 голосов
/ 02 октября 2019

Для Azure Terraform:

Если переменная объявлена ​​в tf-файле, будет ли это значение применяться к той же переменной в других tf-файлах, обрабатываемых вместе? Почему существует значение по умолчанию, связанное с оператором переменной?

Если я создал файл tfvars: cidrs = ["10.0.0.0/16", "10.1.0.0/16"]

Можно ли использовать cidr, как показано ниже для идентификатора подсетиНе очень понимаете синтаксис использования? subnet_id = "$ {azurerm_subnet.subnet.id}" subnet id = cidr

Что такое функция "Default" при использовании с переменными? Смотрите ниже:

    variable "prefix" {
         type = "string"
         default = "my"
 }

    variable "tags" {
         type = "map"
         default = {
            Environment = "Terraform GS"
            Dept = "Engineering"
   }
}

     variable "sku" {
         default = {
            westus = "16.04-LTS"
            eastus = "18.04-LTS"
    }
 }

1 Ответ

0 голосов
/ 02 октября 2019

Там есть несколько вопросов. самый простой: default:

Объявление переменной также может содержать аргумент по умолчанию. Если присутствует, переменная считается необязательной, и будет использоваться значение по умолчанию, если при вызове модуля или запуске Terraform значение не установлено. Аргумент по умолчанию требует буквального значения и не может ссылаться на другие объекты в конфигурации.

Для другого вопроса, обратитесь к этому примеру: https://www.terraform.io/docs/providers/azurerm/r/subnet.html#attributes-reference

Короче говоря, чтобы использоватьсуществующей подсети cidr, вы должны ссылаться на нее следующим образом:

azurerm_subnet.%subnetname%.address_prefix

имя подсети, однако, не может быть равным cidr, поскольку оно не допускает / внутри имени. Вы можете использовать что-то вроде этого, хотя: 10.0.0.0-24

...