簡體   English   中英

如何在Terraform中格式化數字變量

[英]How to format numeric variable in Terraform

我有一個以下(簡化)Terraform代碼:

variable "cluster_id" {
    default = 1
}

resource "aws_instance" "instance" {
    ... some instance properties ...
    tags {
        "Name" = "${format("cluster-%02d", var.cluster_id)}"
    }
}

當我運行terraform apply ,計划顯示:

tags.Name: "%!d(string=1)"

format()cluster_id不作為數字處理,因此格式化失敗。 我希望我得到cluster-01但事實並非如此。

我做錯了什么或者是否真的不能在格式化中使用自定義變量作為數字?

Terraform,0.12之前,只支持stringlistmap類型作為輸入變量,所以盡管你提供了一個integer (或floatboolean ),它將被轉換為string

Terraform 和Go都允許您對整數和字符串使用相同的填充,因此您只需使用以下內容來填充cluster_id

resource "aws_instance" "instance" {
    # ... some instance properties ...
    tags {
        "Name" = "${format("cluster-%02s", var.cluster_id)}"
    }
}

我找到的另一個選項是執行${format("cluster-%02d", var.cluster_id+0)} 添加零會產生實數,然后%02d正常工作。 但使用%02s更清潔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM