Как создать несколько VCN одновременно
У меня проблема, мне нужно создать более одного VCN.
Я хочу установить переменные в файл JSON. нравится:
init_values.json
{
"terraform": {
"tenancy_ocid": "ocid1.ten.xxxxxxxxxxxxxxxxxx",
"user_ocid": "ocid1.user..xxxxxxxxxxxxxxxxxx",
"private_key_path": "/Users/user/.oci/oci_api_key.pem",
"fingerprint": "a8:8e:.xxxxxxxxxxxxxxxxxx",
"region": "eu-frankfurt-1"
},
"vcn": [
{
"name": "vcn_1",
"cidr": "44.144.224.0/25"
},
{
"name": "vcn_2",
"cidr": "44.144.224.128/25"
}
]
}
и мой vcn.tf файл lokks , как это
locals {
vcn_data = jsondecode(file("${path.module}/init_values.json"))
all_vcn = [for my_vcn in local.vcn_data.vcn : my_vcn.name ]
all_cidr = [for my_cidr in local.vcn_data.vcn : my_cidr.cidr ]
}
resource "oci_core_vcn" "these" {
compartment_id = local.json_data.COMPARTMENT.root_compartment
display_name = local.all_vcn
cidr_block = local.all_cidr
}
и provider.tf :
provider "oci" {
//alias = "home"
tenancy_ocid = local.json_data.TERRAFORM.tenancy_ocid
user_ocid = local.json_data.TERRAFORM.user_ocid
private_key_path = local.json_data.TERRAFORM.private_key_path
fingerprint = local.json_data.TERRAFORM.fingerprint
region = local.json_data.TERRAFORM.region
}
и ошибка следующая:
│ Error: Incorrect attribute value type
│
│ on vcn.tf line 39, in resource "oci_core_vcn" "these":
│ 39: display_name = local.all_vcn
│ ├────────────────
│ │ local.all_vcn is tuple with 2 elements
│
│ Inappropriate value for attribute "display_name": string required.
╵
в чем может быть моя ошибка, где я ошибаюсь
Спасибо
1 ответ
Наверное, вместо:
all_cidr = [for my_cidr in local.vcn_data.vcn : my_vcn.cidr ]
так должно быть:
all_cidr = [for my_cidr in local.vcn_data.vcn : my_cidr.cidr ]
Обновлять
Вы должны использовать
count
или же
for_each
для создания нескольких vcns:
resource "oci_core_vcn" "these" {
count = length(local.all_vcn)
compartment_id = local.json_data.COMPARTMENT.root_compartment
display_name = local.all_vcn[each.index]
cidr_block = local.all_cidr[each.index]
}