在 AWS 中,我們目前在三個環境中運行我們的應用程式:dev、staging 和 prod。
對于我們的暫存和生產環境,我們在 x2gd.2xlarge 實體上運行我們的應用程式。但是,對于我們的開發環境,我們只在 x2gd.medium 實體上運行。
在我們的 terraform 中,我們有一個啟動模板塊,我們在其中配置 cpu_options。
cpu_options {
core_count = var.core_count
threads_per_core = var.threads_per_core
}
設定 cpu_options 在我們的 staging 和 prod x2gd.2xlarge 實體上完美運行。但是,在我們的開發環境中使用 x2gd.medium 時,我們會收到以下錯誤訊息:“x2gd.medium 實體型別不支持指定 CpuOptions。”。這個錯誤是正確的,x2gd.medium 實體只有 1 個 CPU,不能配置 cpu_options。
x2gd 系列中的所有較大實體都可以使用 cpu_options 進行配置。但是,我真的不想將開發環境中的實體大小增加到 x2gd.large,因為我們不需要它。所以,我想知道當我們為開發環境運行 terraform 時,是否可以跳過 cpu_options 塊?
uj5u.com熱心網友回復:
擴展評論(h/t:@luk2302),您需要將dynamic塊 [1] 與for_each元引數 [2] 一起使用。然后代碼塊將變為:
dynamic "cpu_options" {
for_each = var.environment == "dev" ? [] : [1]
content {
core_count = var.core_count
threads_per_core = var.threads_per_core
}
}
[1] https://developer.hashicorp.com/terraform/language/expressions/dynamic-blocks
[2] https://developer.hashicorp.com/terraform/language/meta-arguments/for_each
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521723.html
標籤:亚马逊网络服务亚马逊-ec2地形terraform-provider-aws
