Size: a a a

2020 May 04

DZ

Dmytro Zavalkin in terraform_ru
хмм а вот тут что InstanceId = "data.aws_instances.emr_instances_master[0].*.ids[count.index]"
источник

DZ

Dmytro Zavalkin in terraform_ru
разве не так должно быть InstanceId = data.aws_instances.emr_instances_master.ids[count.index]
источник

OK

Oleg 👑 Konung in terraform_ru
Dmytro Zavalkin
разве не так должно быть InstanceId = data.aws_instances.emr_instances_master.ids[count.index]
142:     InstanceId = data.aws_instances.emr_instances_master.ids[count.index]

Because data.aws_instances.emr_instances_master has "count" set, its
attributes must be accessed on specific instances.

For example, to correlate with indices of a referring resource, use:
   data.aws_instances.emr_instances_master[count.index]
источник

OK

Oleg 👑 Konung in terraform_ru
Error: Missing resource instance key
источник

OK

Oleg 👑 Konung in terraform_ru
после гугления, вот такая штука прокатывает, data.aws_instances.emr_instances_master.*.ids
источник

OK

Oleg 👑 Konung in terraform_ru
но я возвращаюсь к первой ошибке
источник

DZ

Dmytro Zavalkin in terraform_ru
Oleg 👑 Konung
после гугления, вот такая штука прокатывает, data.aws_instances.emr_instances_master.*.ids
так тоже понятно что будет, но не с [0] же
источник

OK

Oleg 👑 Konung in terraform_ru
Dmytro Zavalkin
так тоже понятно что будет, но не с [0] же
хм, без [0] такая ошибка
  on emr.tf line 141, in resource "aws_cloudwatch_metric_alarm" "EMR-Master-High-RootDiskUtil":
141:   dimensions = {
142:     InstanceId = data.aws_instances.emr_instances_master.*.ids[count.index]
143:     path = "/"
144:     fstype = "ext4"
145:     device = "xvda1"
146:   }
   |----------------
   | count.index is 0
   | data.aws_instances.emr_instances_master is tuple with 1 element

Inappropriate value for attribute "dimensions": element "InstanceId": string
required.

но почему он считает, что там не стринга ?
источник

OK

Oleg 👑 Konung in terraform_ru
в стейте я так вижу это
 "mode": "data",
 "type": "aws_instances",
 "name": "emr_instances_master",
 "each": "list",
 "provider": "provider.aws",
 "instances": [
   {
     "index_key": 0,
     "schema_version": 0,
     "attributes": {
       "filter": null,
       "id": "terraform-20200504080734652500000002",
       "ids": [
         "i-123456789"
       ],
источник

OK

Oleg 👑 Konung in terraform_ru
если ставлю кавычки вокруг "data.aws_instances.emr_instances_master.ids[count.index]" то он принимает такое, но как бы считает что вся строка и есть id инстанса
источник

DZ

Dmytro Zavalkin in terraform_ru
что-то тут странное, а не пробовал переписать с count на foreach https://www.terraform.io/docs/configuration/resources.html#for_each-multiple-resource-instances-defined-by-a-map-or-set-of-strings
источник

A

Andor in terraform_ru
Oleg 👑 Konung
если ставлю кавычки вокруг "data.aws_instances.emr_instances_master.ids[count.index]" то он принимает такое, но как бы считает что вся строка и есть id инстанса
это как бы нормально
источник

A

Andor in terraform_ru
строку передал - строка принялась
источник

DZ

Dmytro Zavalkin in terraform_ru
так и понятнее код и можно алармам дать имена с айди инстанса - иначе как их потом различать?
источник

OK

Oleg 👑 Konung in terraform_ru
Andor
строку передал - строка принялась
как передать чтоб он понял что это стринга но при этом распарсилась дата ?
источник

OK

Oleg 👑 Konung in terraform_ru
Dmytro Zavalkin
так и понятнее код и можно алармам дать имена с айди инстанса - иначе как их потом различать?
не пробовал, поизучаю
источник

A

Andor in terraform_ru
count = length(data.aws_instances.emr_instances_master[0].ids)
а значит должно быть скорее всего:
InstanceId = data.aws_instances.emr_instances_master[0].ids[count.index]
источник

A

Andor in terraform_ru
откуда там splat взялся?
источник

DZ

Dmytro Zavalkin in terraform_ru
Andor
count = length(data.aws_instances.emr_instances_master[0].ids)
а значит должно быть скорее всего:
InstanceId = data.aws_instances.emr_instances_master[0].ids[count.index]
@Andorka так а откуда там [0]? я в от эту часть не понимаю
источник

OK

Oleg 👑 Konung in terraform_ru
если не указать .*.ids то ошибка
data.aws_instances.emr_instances_master.ids[count.index]

Because data.aws_instances.emr_instances_master has "count" set, its
attributes must be accessed on specific instances.

For example, to correlate with indices of a referring resource, use:
   data.aws_instances.emr_instances_master[count.index]
источник