Я нашел ответ.
Мартин, вы правы, это то, о чем говорилось в сообщении об ошибке, и получение списка строк в свойстве zone оказалось настоящей PITA. Я перепробовал все варианты синтаксиса. Я попробовал функцию tolist. Ничего. То, что в конечном итоге сработало, было функцией Split. Вот как теперь выглядит мой код:
zones = "${var.avzones}" ? split("","${element(["1","2","3"], "${count.index}")}") : null
Мартин: другой комментарий, который ты сделал о том, что я посылаю ноль вместо "", имеет больше смысла, и именно это я и решил сделать. Я еще не проверял это. Я только до сих пор проверил зоны. Я не мог поверить, когда разделение сработало, это может быть немного хакерским, но он сделал свою работу. Я подтвердил, что он действительно построил все зоны так, как я хочу. С 1 по 3 каждый раз. Если ноль не сработает, я обновлю свой ответ ... но сейчас;любой, кто борется с Зонами доступности Azure и заставляет Terraform распознавать значения 1-3, использует код, который я разместил выше. Это работает!