Terraform ja infrastruktuuri koodina · Oppitunti

Mukautettujen providereiden rakentaminen

Laajentakaa Terraformia olemassa olevia integraatioita pidemmälle ymmärtämällä providereiden toiminta ja toteuttamalla mukautettu provider Terraform Plugin Frameworkilla.

Oppitunti 4/413 vaihetta

Mukautettujen providereiden rakentaminen on ilmainen Terraform ja infrastruktuuri koodina-oppitunti CoddyKitissä. Tämä on oppitunti 4/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.

Kun nykyiset providerit eivät riitä

Registry kattaa useimmat alustat, mutta yrityksillä on usein sisäisiä API-rajapintoja, joille ei ole provideria. Mukautetun providerin avulla Terraform voi hallita näitä resursseja samalla plan/apply-elinkaarimallilla.

Miten providerit toimivat

Provider on erillinen plugin-binääri, jonka Terraform käynnistää ja johon se muodostaa yhteyden gRPC:n kautta. Plugin muuntaa Terraformin CRUD-operaatiot kohdejärjestelmään kohdistuviksi API-kutsuiksi.

Plugin Framework

HashiCorpin moderni Terraform Plugin Framework (Go) on suositeltu tapa rakentaa providereita, ja se korvaa vanhemman SDKv2:n. Providerit kirjoitetaan Golla.

import (
  "github.com/hashicorp/terraform-plugin-framework/provider"
)

Providerin määrittäminen

Provider-tyyppi ilmoittaa nimensä sekä tarjoamansa resurssit ja tietolähteet.

type widgetProvider struct{}

func (p *widgetProvider) Metadata(_ context.Context, _ provider.MetadataRequest, resp *provider.MetadataResponse) {
  resp.TypeName = "widget"
}

Resurssin skeema

Jokainen resurssi ilmoittaa skeeman, joka koostuu tyypeillä ja metatiedoilla varustetuista attribuuteista. Näitä käyttäjät määrittävät HCL:ssä.

resp.Schema = schema.Schema{
  Attributes: map[string]schema.Attribute{
    "name": schema.StringAttribute{Required: true},
    "id":   schema.StringAttribute{Computed: true},
  },
}

CRUD-operaatioiden toteuttaminen

Resurssi toteuttaa operaatiot Create, Read, Update ja Delete. Jokainen metodi kutsuu APIasi ja kirjoittaa tuloksen takaisin Terraformin tilaan.

func (r *widgetResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
  // call API, then save state
}

Read pitää tilan totuudenmukaisena

Read-metodi päivittää tilan oikeasta APIsta. Jos etäresurssi on poistunut, poista se tilasta, jotta Terraform suunnittelee sen luomisen uudelleen.

Hyväksymistestaus

Providerit käyttävät hyväksymistestejä, jotka suorittavat todellisia plan/apply-kierroksia testiympäristöä vasten. Ympäristömuuttuja ohjaa testien suorittamista, jotta ne eivät käynnisty vahingossa.

TF_ACC=1 go test ./... -v

Paikallisen kehityksen ohitus

Testataksesi provideria ennen julkaisemista käytä CLI-konfiguraatiossa dev override -asetusta, jotta Terraform lataa paikallisen binäärisi sen sijaan, että se lataisi providerin registrystä.

provider_installation {
  dev_overrides {
    "acme/widget" = "/home/dev/go/bin"
  }
  direct {}
}

Providerin julkaiseminen

Julkaise provider registryssä merkitsemällä julkaisu tagilla ja allekirjoittamalla binäärit GPG-avaimella. Käyttäjät ilmoittavat sen jälkeen providerin kohdassa required_providers.

terraform {
  required_providers {
    widget = {
      source  = "acme/widget"
      version = "~> 1.0"
    }
  }
}

Ylläpidossa huomioitavaa

Provider on pitkäaikainen sitoumus: API-muutokset, versioiden yhteensopivuus ja dokumentaatio vaativat kaikki ylläpitoa. Kertaluonteisiin tarpeisiin external-tietolähde tai skripti voi olla yksinkertaisempi ratkaisu kuin täysimittainen provider.

Pikatarkistus

Testaa mukautettujen providerien tuntemuksesi.

Kertaus: Terraformin laajentaminen

Opit rakentamaan mukautettuja providereita:

  • Providerit ovat Go-plugineja, jotka keskustelevat ytimen kanssa gRPC:n välityksellä.
  • Plugin Framework määrittää skeemat ja CRUD-metodit.
  • Dev override -asetukset mahdollistavat paikallisen testauksen, ja hyväksymistestit varmistavat toiminnan.
  • Julkaiseminen edellyttää tageja ja allekirjoitettuja binäärejä.
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 ”Mukautettujen providereiden rakentaminen” ilmainen?

Kyllä – oppitunnin ”Mukautettujen providereiden rakentaminen” 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 ”Mukautettujen providereiden rakentaminen”?

Laajentakaa Terraformia olemassa olevia integraatioita pidemmälle ymmärtämällä providereiden toiminta ja toteuttamalla mukautettu provider Terraform Plugin Frameworkilla. 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 4/4.

Kuinka kauan ”Mukautettujen providereiden rakentaminen”-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. Monipilvi- ja hybridipilvimallit
  2. Sentinel-käytännöt hallintaa varten
  3. Terraform Cloud ja Enterprise
  4. Mukautettujen providereiden rakentaminen
← Takaisin: Terraform ja infrastruktuuri koodina