editor php Banana akan memperkenalkan anda hari ini cara mencipta seni bina pembekal sumber data rupa bumi tersuai untuk peta nilai peta. Apabila menggunakan Terraform untuk orkestrasi infrastruktur, kita selalunya perlu mendapatkan data daripada sistem atau perkhidmatan luaran untuk konfigurasi dinamik. Dan pembekal sumber data tersuai boleh membantu kami mencapai matlamat ini. Dengan mencipta skema penyedia sumber data tersuai, kami boleh mendapatkan data yang kami perlukan dengan mudah daripada peta nilai peta dan menggunakannya dalam konfigurasi Terraform kami. Seterusnya, mari belajar bagaimana untuk mencapainya!
Saya mempunyai fungsi golang yang mengembalikan peranan jenis map[string]map[string]string
map[foo:map[name:abc env:dev id:465 project:e-1] boo:map[name:def env:prd id:82 project:e-1] :doo[name:ght env:stg id:353 project:e-3]]
func datasourceaccounthelper() *schema.resource { return &schema.resource{ read: accounthelperread, schema: map[string]*schema.schema{ "roles": { type: schema.typemap, elem: &schema.schema{ type: schema.typemap, computed: true, elem: &schema.schema{ type: schema.typestring, }, }, computed: true, }, "id": &schema.schema{ computed: true, type: schema.typestring, }, }, } }
func rolesread(d *schema.resourcedata, m interface{}) error { filteredroles := filteraccounts("john") // returns `map[string]map[string]string` if err := d.set("account_map", filteredroles); err != nil { return err } //accountmaps := make(map[string]interface{}) d.setid("-") return nil }
outputs: output = { "roles" = tomap(null) /* of map of string */ "id" = tostring(null) }
Outputs: output = { "roles" = { foo = {name = "abc" env = "dev" id= 465 project = "e-1"} boo = {name = "efg" env = "prd" id= 82 project = "e-2"} }, "id" = "-" }
. typestring
、typeint
、typebool
berhijrah ke rangka kerja baharu yang dibina untuk sistem jenis terraform moden dan bukannya (seperti yang berlaku dengan sdkv2) sistem jenis terraform klasik v0.11 dan lebih awal.
Dalam rangka kerja pemalam terraform, struktur yang setara dengan apa yang anda cuba huraikan di sini ialahschema.mapnestedattribute{ nestedobject: schema.nestedattributeobject{ attributes: map[string]schema.attribute{ "name": schema.stringattribute{ // ... }, "env": schema.stringattribute{ // ... }, "id": schema.numberattribute{ // ... }, "project": schema.stringattribute{ // ... }, }, }, }
bahasa terraform:
map( object({ name = string env = string id = number project = string }) )
Atas ialah kandungan terperinci Bagaimana untuk mencipta skema penyedia sumber data rupa bumi tersuai untuk peta nilai peta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!