#variables #terraform #azure-storage #string-concatenation #azure-storage-account
Вопрос:
У нас есть требование создать учетную запись хранилища Azure в Terraform. Однако требуется соглашение об именовании для объединения трех объявленных переменных, что означает, что модуль будет выглядеть примерно так, как показано ниже:
resource "azurerm_storage_account" "example" {
name = "(var.first)(var.second)(var.third)"
resource_group_name = "rg01"
location = "uksouth"
account_tier = "Standard"
account_replication_type = "GRS"
Это стало чем-то вроде борьбы, пытаясь достичь этого, и, изучив руководства по терраформированию, кажется, что нет никакой функции, которая могла бы позволить нам достичь этого. Есть какие-нибудь идеи или предложения?
Ответ №1:
Предполагая, что ваши переменные являются строками и у вас нет никаких неправильных символов, тогда это должно быть:
name = "${var.first}${var.second}${var.third}"
Комментарии:
1. И то, и другое, я очень ценю ваш ответ. Возможно, вам также захочется знать, что вскоре после моего поста я попробовал эту другую реализацию, и она тоже отлично сработала:
name = format("%s", "${var.sa_1}${var.sa_2}${var.sa_3}")
2. @hitman123 Рад, что все получилось. Если какой-либо из ответов окажется полезным, мы будем признательны за его принятие.
3. Кроме того, просто добавлю, что я попробовал оба варианта, представленные Марсином и Абинетом, и они работают, хотя я могу отметить только один из них как ответ, когда на самом деле должны быть оба.
Ответ №2:
Вы можете использовать формат():
resource "azurerm_storage_account" "example" {
name = format("%s%s%s", var.first, var.second, var.third)
resource_group_name = "rg01"
location = "uksouth"
account_tier = "Standard"
account_replication_type = "GRS"
Комментарии:
1. Абинет, приношу извинения за случайное снижение голосов. Попытался его отменить, но продолжал получать сообщение об ошибке о том, что мой голос в настоящее время заблокирован, и я могу сделать это только в том случае, если ваш ответ отредактирован.
2. @hitman126 Я буду голосовать, чтобы компенсировать это:-)