调用函数 "format" 失败:0 处“%02d”的参数不足:需要索引 1 但总数为 0
Call to function "format" failed: not enough arguments for "%02d" at 0: need index 1 but have 0 total
我正在创建一个 terraform 配置,基本上是一个 VM 集群,甚至是单个 VM,具体取决于角色。创建存储帐户时遇到问题。
用于创建存储帐户的 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
或
即使我有一个虚拟机,它也应该只有一个存储帐户,所以虚拟机的数量无关紧要,它应该只有一个存储帐户。
也许这是你犯的一个小错误。如错误所示,函数 "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)}"
如果您需要更多帮助,请告诉我。
我正在创建一个 terraform 配置,基本上是一个 VM 集群,甚至是单个 VM,具体取决于角色。创建存储帐户时遇到问题。
用于创建存储帐户的 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
或
即使我有一个虚拟机,它也应该只有一个存储帐户,所以虚拟机的数量无关紧要,它应该只有一个存储帐户。
也许这是你犯的一个小错误。如错误所示,函数 "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)}"
如果您需要更多帮助,请告诉我。