Terraformin sisäänrakennetut funktiot
Tutustukaa Terraformin monipuolisiin sisäänrakennettuihin funktioihin, joilla voitte käsitellä merkkijonoja ja listoja, muuntaa tyyppejä sekä tehostaa määrityksiänne muilla tavoin.
Terraformin sisäänrakennetut funktiot on ilmainen Terraform ja infrastruktuuri koodina-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Terraform ja infrastruktuuri koodina-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Terraform ja infrastruktuuri koodina-kurssilla on yhteensä 4 oppituntia.
Dynaamisten määritysten käyttöönotto
Terraformin sisäänrakennetut funktiot ovat pieniä ohjelmia, joiden avulla voit käsitellä ja muuntaa arvoja suoraan määritystiedostoissa.
Niiden avulla voit luoda dynaamisia, uudelleenkäytettäviä ja älykkäämpiä infrastruktuurimäärityksiä.
- Muunna tietoja: Muuta merkkijonoja, lukuja tai luetteloita.
- Laske arvoja: Suorita laskutoimituksia tai loogisia tarkistuksia.
- Luo dynaamista sisältöä: Luo resurssien nimiä tai tunnisteita lennossa.
Tekstin muunnokset
Merkkijonofunktiot ovat välttämättömiä tekstin käsittelyssä. Kaksi perusfunktiota ovat upper() ja lower(), jotka muuttavat merkkijonon kirjainkokoa.
Niistä on hyötyä nimeämiskäytäntöjen yhdenmukaistamisessa ja erityisvaatimusten täyttämisessä.
variable "region_code" {
type = string
default = "us-east-1"
}
output "upper_region" {
value = upper(var.region_code)
}
output "lower_example" {
value = lower("AWS_REGION")
}Merkkijonojen yhdistäminen ja jakaminen
join()-funktio yhdistää luettelon alkiot yhdeksi merkkijonoksi käyttäen määritettyä erotinta. Vastaavasti split() jakaa merkkijonon osamerkkijonoista koostuvaksi luetteloksi erottimen perusteella.
Nämä funktiot ovat tehokkaita tietojen jäsentämisessä ja monimutkaisten nimien muodostamisessa.
variable "tags_list" {
type = list(string)
default = ["web", "frontend", "prod"]
}
output "joined_tags" {
value = join(",", var.tags_list)
}
output "split_string" {
value = split("-", "server-01-app")
}Matematiikka määrityksissä
Numeeristen arvojen funktioilla voit suorittaa matemaattisia perusoperaatioita. ceil() pyöristää ylöspäin, floor() alaspäin ja min()/max() etsivät joukon pienimmän ja suurimman arvon.
Niistä on hyötyä esimerkiksi resurssien määrän tai koon laskemisessa.
variable "instance_ratio" {
type = number
default = 3.7
}
output "rounded_up_instances" {
value = ceil(var.instance_ratio)
}
output "rounded_down_instances" {
value = floor(var.instance_ratio)
}
output "smallest_val" {
value = min(10, 5, 12, 8)
}Luetteloiden käsittely
Luettelot ovat järjestettyjä alkioiden kokoelmia. length()-funktion kaltaiset funktiot kertovat, kuinka monta alkiota luettelossa on, ja element() palauttaa alkion numeerisen indeksin perusteella (indeksointi alkaa arvosta 0).
Ne ovat käteviä iteroitaessa tai valittaessa tiettyjä alkioita.
variable "zones" {
type = list(string)
default = ["us-east-1a", "us-east-1b", "us-east-1c"]
}
output "num_zones" {
value = length(var.zones)
}
output "first_zone" {
value = element(var.zones, 0)
}Avain–arvo-tietojen käsittely
Kartat tallentavat tietoja avain–arvo-pareina. lookup() hakee tietylle avaimelle vastaavan arvon ja voi käyttää oletusarvoa, jos avainta ei löydy. merge() yhdistää useita karttoja yhdeksi kartaksi.
Ne sopivat erinomaisesti metatietojen tai resurssitunnisteiden hallintaan.
variable "server_info" {
type = map(string)
default = {
name = "backend-server"
env = "dev"
}
}
variable "additional_info" {
type = map(string)
default = {
owner = "team-a"
}
}
output "server_name" {
value = lookup(var.server_info, "name", "unknown")
}
output "merged_map" {
value = merge(var.server_info, var.additional_info)
}Tietotyyppien muuttaminen
Joskus arvon on oltava tiettyä tietotyyppiä (esimerkiksi merkkijono luvun sijaan), jotta sitä voidaan käyttää resurssin argumenttina. Tyyppimuunnosfunktiot, kuten tostring() ja tonumber(), auttavat tässä.
Ne varmistavat yhteensopivuuden määrityksen eri osien välillä.
variable "port_number" {
type = number
default = 8080
}
output "port_as_string" {
value = tostring(var.port_number)
}
output "string_to_number" {
value = tonumber("123") + 7
}Funktiot käytännössä
Sisäänrakennettuja funktioita voi yhdistää tai sisäkkäistää monimutkaisten tietomuunnosten tekemiseksi. Tässä esimerkissä muodostetaan resurssin nimi yhdistämällä muuttujia, muuttamalla yksi niistä suuraakkosiksi ja varmistamalla tietotyyppien oikeellisuus.
variable "env" {
type = string
default = "dev"
}
variable "service" {
type = string
default = "app"
}
variable "instance_id" {
type = number
default = 1
}
output "resource_name" {
value = join("-", [
upper(var.env),
var.service,
tostring(var.instance_id)
])
}Parhaat käytännöt
Kun käytätte funktioita, pyrkikää selkeyteen ja ylläpidettävyyteen:
- Pidä koodi luettavana: Älä sisäkkäistä funktioita liikaa, jos se vaikeuttaa koodin ymmärtämistä.
- Käytä muuttujia: Tallenna monimutkaiset välitulokset paikallisiin muuttujiin luettavuuden parantamiseksi.
- Testaa komennolla
terraform console: Kokeile funktioita nopeasti ja tarkista niiden tuloste ennen niiden lisäämistä määritykseesi.
Funktiohaaste
Testataan, miten hyvin ymmärrät Terraformin sisäänrakennettujen funktioiden yhteistoimintaa.
Funktiot hallussa
Olet tutustunut Terraformin tehokkaisiin sisäänrakennettuihin funktioihin!
Ymmärrät nyt, miten merkkijono-, numeerisia-, kokoelma- ja tyyppimuunnosfunktioita käytetään määritysten tekemiseen dynaamisiksi ja mukautuviksi. Nämä työkalut ovat olennaisia tehokkaan ja uudelleenkäytettävän Infrastructure as Coden kirjoittamisessa.
Opi Terraform ja infrastruktuuri koodina tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Terraformin sisäänrakennetut funktiot” ilmainen?
Kyllä – oppitunnin ”Terraformin sisäänrakennetut funktiot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Terraform ja infrastruktuuri koodina-kurssin, päivitä CoddyKit PROhon. Terraform ja infrastruktuuri koodina-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Terraformin sisäänrakennetut funktiot”?
Tutustukaa Terraformin monipuolisiin sisäänrakennettuihin funktioihin, joilla voitte käsitellä merkkijonoja ja listoja, muuntaa tyyppejä sekä tehostaa määrityksiänne muilla tavoin. Harjoittelet Terraform ja infrastruktuuri koodina-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Terraform ja infrastruktuuri koodina-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Terraform ja infrastruktuuri koodina-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Terraformin sisäänrakennetut funktiot”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Terraform ja infrastruktuuri koodina-oppitunnilla?
Kyllä. Jokainen Terraform ja infrastruktuuri koodina-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Silmukat `for_each`- ja `count`-konstruktioilla
- Terraformin sisäänrakennetut funktiot
- Ehdolliset lausekkeet ja splat-lausekkeet
- Dynaamiset lohkot sisäkkäisiä määrityksiä varten