Ошибка вызова функции "format": недостаточно аргументов для "% 02d" в 0: нужен индекс 1, но всего 0 - PullRequest
0 голосов
/ 06 июля 2019

Я создаю конфигурацию terraform, в основном кластер виртуальных машин или даже одну виртуальную машину в зависимости от ролей. Возникла проблема при создании учетной записи хранения.

Конфигурация Terraform для создания учетной записи хранения выглядит следующим образом:

 # Storage Account
    resource "azurerm_storage_account" "tf-sa-grpprd-aos" {
    #  count                    = "${var.count_aos_vm}"
      name                     = "${lower(var.aos_base_hostname)}${format("%02d,2")}${var.storage_account_suffix}01"
      location                 = "${azurerm_resource_group.tf-rg-grpprd-application.location}"
      resource_group_name      = "${azurerm_resource_group.tf-rg-grpprd-application.name}"
      account_tier             = "${var.sto_acc_tier_std}"
      account_replication_type = "${var.sto_acc_rep_type_lrs}"

    }

Сообщение об ошибке указано в заголовке, но оно указано ниже

Error in function call
on aos.tf line 106, in resource "azurerm_storage_account" "tf-sa-grpprd-aos":
name                     = "${lower(var.aos_base_hostname)}${format("%02d,2")}${var.storage_account_suffix}01"
Call to function "format" failed: not enough arguments for "%02d" at 0: need
index 1 but have 0 total.

Я ссылаюсь на документацию terraform, как указано ниже https://www.terraform.io/docs/configuration/functions/format.html

Возможно, я не использую это неправильным способом? Благодарю, если кто-нибудь сможет уточнить, что я совершаю ...

По сути, если у меня 5 рабочих коробок с приложениями, у него должна быть только одна учетная запись хранения, как показано ниже. grpprodapp01..05, но будет иметь учетную запись хранения как один grpprodapp01

OR

Даже если у меня есть одна виртуальная машина, она также должна иметь только одну учетную запись хранения, так что количество виртуальных машин не имеет значения, она должна иметь только одну учетную запись хранения.

1 Ответ

1 голос
/ 07 июля 2019

Может быть, ты совершаешь небольшую ошибку. Как показывает ошибка, у функции «format» должен быть один аргумент, но вы ничего не даете. Так что, если вы просто хотите отформатировать целое число 2 в 02, вы должны внести изменения, как показано ниже:

name = "${lower(var.aos_base_hostname)}${format("%02d", 2)}${var.storage_account_suffix}01"

Это просто исправляет ваш неправильный формат. Но, как показано в описании, вам нужно имя учетной записи хранения, например, grpprodapp01..05 с количеством. И если значение переменной var.aos_base_hostname равно grpprodapp, то оно должно быть таким:

name = "${lower(var.aos_base_hostname)}${format("%02d", count.index)}"

Если вам нужна дополнительная помощь, пожалуйста, дайте мне знать.

...