Terraform ja infrastruktuuri koodina · Oppitunti

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.

Oppitunti 2/411 vaihetta

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.

Aloita maksutta

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

  1. Silmukat `for_each`- ja `count`-konstruktioilla
  2. Terraformin sisäänrakennetut funktiot
  3. Ehdolliset lausekkeet ja splat-lausekkeet
  4. Dynaamiset lohkot sisäkkäisiä määrityksiä varten
← Takaisin: Terraform ja infrastruktuuri koodina