Terraform .id объяснение - PullRequest
       2

Terraform .id объяснение

0 голосов
/ 12 сентября 2018

Я новичок в Terraform, и меня смущает атрибут id, возвращаемый ресурсами.

Дано:

data "azurerm_subnet" "aas_mng_subnet" {
  name                 = "${var.prefix}-${var.env_type}-subnet-${var.site_octet}.50.x"
  virtual_network_name = "${data.azurerm_virtual_network.main.name}"
  resource_group_name  = "${var.prefix}-${var.env_type}"
}

и

subnet_id = "${data.azurerm_subnet.aas_mng_subnet.id}"

Чтобудет значение subnet_id?Я имею в виду в целом - не характерно для этого примера.Каково значение атрибута .id в каждом месте его появления?

Документация Terraform пытается объяснить это, но я не уверен, что до сих пор понимаю это:

Атрибуты источника данных

Синтаксис data.TYPE.NAME.ATTRIBUTE.Например.${data.aws_ami.ubuntu.id} будет интерполировать атрибут id из источника данных aws_ami с именем ubuntu.Если для источника данных установлен атрибут count, вы можете получить доступ к отдельным атрибутам с индексом, начинающимся с нуля, например ${data.aws_subnet.example.0.cidr_block}.Вы также можете использовать синтаксис splat, чтобы получить список всех атрибутов: ${data.aws_subnet.example.*.cidr_block}.

Я буду благодарен, если кто-то сможет объяснить мне его другими словами и \ или примерами.

1 Ответ

0 голосов
/ 12 сентября 2018

Это идентификатор подсети, возвращаемый Azure, поэтому он должен выглядеть примерно так: /subscriptions/subid/resourceGroups/subnet-test/providers/Microsoft.Network/virtualNetworks/vnetname/subnets/subnet1.

Другие ресурсы и другие провайдеры будут возвращать другие данные для идентификатора, но в целом принцип заключается в том, что идентификатор ресурса является чем-то уникальным для провайдера (поэтому учетная запись и все остальное, что может отличать его, например регион ).

Я не очень хорошо знаю поставщика Azure, но, например, ресурс aws_instance вернет идентификатор, который является идентификатором экземпляра, который выглядит примерно как i-abcdef1234567890 и * 1011. * ресурс , который создает балансировщики нагрузки приложений / сети, имеет идентификатор ARN (имя ресурса Amazon) и выглядит примерно так: arn:aws:elasticloadbalancing:$REGION_NAME:$ACCOUNT_NUMBER:loadbalancer/app/my-example-alb/abcdef1234567890.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...