На самом деле, я думаю, что в коде Terraform, который вы указали в вопросе, все в порядке, и все у меня хорошо работает.
В ошибке также сказано:
The given key does not identity an element this collection value.
Вероятно, потому, что ваши публичные c IP-адреса не созданы до сетевого интерфейса. Это странно. Terraform упорядочит все ресурсы в правильной последовательности. Может быть, вы можете попробовать обновить версию Terraform. Я использовал самую новую версию:
Terraform v0.12.19
+ provider.azurerm v1.41.0
Или вы можете попробовать изменить код следующим образом:
public_ip_address_id = "${element(azurerm_public_ip.example.*.id, count.index)}"