Блок triggers
ресурса null_resource
принимает карту строк (например, map[string]string{}
), поскольку ваше сообщение об ошибке указывает, когда оно пытается прочитать значение cluster_instance_ids
какстрока и происходит сбой с:
триггерами (cluster_instance_ids): '' ожидаемый тип 'string', получен необратимый тип '[] interface {}'
Удаление ненужныхФункция list
должна решить проблему, когда у вас останется объединенная строка:
triggers = {
cluster_instance_ids = "${aws_instance.controller.id, aws_instance.gateway.id, join(",", aws_instance.workers.*.id)}"
}
В вашем случае, когда вы думаете, что это список идентификаторов экземпляров, блок triggers
просто ищите что-то для изменения, чтобы знать, что это должно быть, ну, в общем, инициировано, так что на самом деле не имеет значения, какой тип данных, и поэтому строка - это самый простой вариант.На самом деле, у вас уже есть список в aws_instance.workers.*.id
, который вы преобразовали в строку с помощью функции join
.