Mukautettujen providereiden rakentaminen
Laajentakaa Terraformia olemassa olevia integraatioita pidemmälle ymmärtämällä providereiden toiminta ja toteuttamalla mukautettu provider Terraform Plugin Frameworkilla.
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 ./... -vPaikallisen 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ä.
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
- Monipilvi- ja hybridipilvimallit
- Sentinel-käytännöt hallintaa varten
- Terraform Cloud ja Enterprise
- Mukautettujen providereiden rakentaminen