Kuinka käyttää Vultr Go -kirjastoa palvelintietojen saamiseksi

Johdanto

Virallista Vultr Go -kirjastoa voidaan käyttää vuorovaikutukseen Vultr API:n kanssa . Vultr API:n avulla voit hallita tiliisi liittyviä resursseja, kuten palvelimia, dns:ää, palomuuria, tilannekuvia, verkkoa ja paljon muuta. Tämä opetusohjelma antaa johdannon virallisen Go API -asiakkaan käyttöön luomalla yksinkertaisen sovelluksen saadakseen tietoja palvelimistasi.

Edellytykset

  • Windows-, Linux- tai macOS-tietokone, johon on asennettu Go 1.12+.
  • Ohjelmoinnin perustiedot.
  • Valinnainen: Go:ta tukeva IDE (esimerkiksi Visual Studio Code, emacs tai Atom).

Tavoitteet

  • Opi käyttämään virallista Vultr API -kirjastoa.
  • Ohjelman kirjoittaminen palvelimen tietojen tarkastelemiseksi.

Vaihe 1: Projektin luominen

Ensin aloitamme luomalla uuden moduulin (projektin). Yleensä käytät koodisi arkiston URL-osoitetta moduulin nimenä, mutta se ei kuulu tämän opetusohjelman piiriin. Käytämme toistaiseksi serverinfoa moduulin nimenä.

Luo projekti suorittamalla seuraavat komennot:

# Create the folder in the current directory. mkdir serverinfo # Enter the new folder. cd serverinfo # Initialize the module. go mod init serverinfo

Vaihe 2: Lataa kirjasto

Seuraavaksi lataamme API-kirjaston GitHubista (koodin isännöintisivusto). Jos haluat ladata kirjastoja, sinun on käytettävä go getkomentoa. Tämä lataa automaattisesti kirjaston ja sen riippuvuudet, kun lisäät sen go.mod- tiedostoon. Syötä seuraava komento samaan terminaaliin, jonka avasit aiemmin:

go get github.com/vultr/govultr

Vaihe 3: API-avaimen hankkiminen

Tarvitset API-avaimen käyttääksesi API-asiakasta. Voit noutaa API-avaimesi hallintapaneelisi Tili- osion API- välilehdeltä . Sinun on myös valtuutettava IP-osoitteesi käyttääksesi API-avainta. Löydät IP-osoitteesi siirtymällä osoitteeseen ifconfig.me . Huomaa, että etsit julkista IP-osoitettasi, et yksityistä. Yksityinen IP-osoitteesi on se, jonka löydät tietokoneesi verkkoasetuksista, ja se on jollakin seuraavista CIDR-alueista: 10.0.0.0/8 , 172.16.0.0/12 tai 192.168.0.0/16 .

Kun sinulla on IP-osoitteesi, lisää se Access Control -osioon. Laatikossa jälkeen / , tyyppi 32. /32on verkkomaskin merkitys 255.255.255.255. Tämä tarkoittaa, että vain IP-osoitteesi sisältyy alueeseen.

Varoitus: Suojaa API-avaimesi samalla tavalla kuin salasanasi. API-avaimella on pääsy koko tiliisi, mukaan lukien laskutus, palvelimet ja tallennustila.

Vaihe 4: Ohjelmatiedoston luominen

Nyt aletaan työstää ohjelmaa. Avaa kansio, jonka loimme valitsemallasi editorilla, ja luo tiedosto nimeltä main.go.

Kirjoita tai kopioi ja liitä seuraava koodi tiedoston sisään:

package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { }

package mainKertoo Go että olemme luomassa komentoa, ei kirjasto. Tuontilausunto ilmoittaa käytettävät riippuvuudet. func main()on funktio, jota kutsutaan, kun suoritamme ohjelmaa.

Vaihe 5: API-asiakkaan alustaminen

Seuraava vaihe on API-asiakkaan alustaminen. Tätä varten meidän on käytettävä funktiota govultr.NewClient(http.Client, string) . Lisää seuraava koodi main()- funktion sisään:

client := govultr.NewClient(nil, "YOURAPIKEY")

Korvaa YOURAPIKEYaiemmin hakemallasi API-avaimella.

Katsotaanpa tätä koodia hieman tarkemmin. Vasemmalla puolella :=meillä on client. Se on muuttujan nimi . Muuttuja tallentaa arvot. Oikealla puolella on funktiokutsu govultr.NewClient . Ensimmäinen parametri on nolla, koska meidän ei tarvitse muuttaa oletusarvoista HTTP-asiakasta. Toinen parametri on API-avain, jota käytämme todentamaan itsemme. :=Operaattori määrittää oikealla puolella vasemmalle puolelle, tässä tapauksessa tulos toiminnon puhelun client.

Vaihe 6: API:n käyttö

Ohjelmamme ei vieläkään tee mitään. Jotta se olisi hyödyllistä, aiomme hakea tietoja palvelimistamme Vultrilta. Käytämme funktiota govultr.Client.Server.List(context.Context) ([]govultr.Server, error) . Lisää seuraava koodi main()- funktion loppuun :

servers, err := client.Server.List(context.Background()) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) }

Tässä koodissa kutsumme API-toimintoa hakemaan palvelintiedot. Älä vielä ole huolissasi kontekstin merkityksestä , sillä se on edistyneempi aihe. Toistaiseksi meidän tarvitsee vain tietää, että konteksti ohjaa API-asiakasohjelman toimintaa. konteksti.Background () palauttaa tyhjän kontekstin . Kun olemme hakeneet palvelintiedot kahteen muuttujaan, palvelimet ja err , tarkistamme, tapahtuiko virhe. Jos näin on, ilmoitamme käyttäjälle virheestä ja poistumme koodilla 1 (virhe).

Vaihe 7: Näytä tiedot

Nyt kun meillä on joukko palvelimia palvelinmuuttujassa ( []govultr.Server ), voimme itse asiassa näyttää sen. Lisää seuraava koodi main()- funktion loppuun :

fmt.Println("Servers:") for _, server := range servers { fmt.Printf(" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n", server.Label, server.MainIP, server.Location, server.PendingCharges, server.CurrentBandwidth, server.AllowedBandwidth, ) }

Ensin tulostamme (näytämme) otsikon, Servers:. Sitten teemme silmukan palvelintaulukon yli, jätämme indeksin huomioimatta määrittämällä sen _ja määrittämällä nykyisen palvelimen palvelinmuuttujalle . Silmukan sisällä näytämme palvelimen tunnisteen, IP-osoitteen, sijainnin, odottavat maksut, nykyisen kaistanleveyden ja sallitun kaistanleveyden. Tehdäksemme tämän tehokkaasti käytämme muotoiltuja merkkijonoja , jotka näyttävät tältä " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". %sKeino korvata seuraavan merkkijonon, vaikka %.2fkeinot tulostaa seuraavan float (desimaalilukuna) pyöristettynä 2 desimaalin tarkkuudella. Loput muotomerkkijonosta tulostetaan kirjaimellisesti (sellaisenaan).

Vaihe 8: Juokse

Tässä vaiheessa koodisi pitäisi näyttää tältä:

package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { client := govultr.NewClient(nil, "YOURAPIKEY") servers, err := client.Server.List(context.Background()) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) } fmt.Println("Servers:") for _, server := range servers { fmt.Printf(" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n", server.Label, server.MainIP, server.Location, server.PendingCharges, server.CurrentBandwidth, server.AllowedBandwidth, ) } }

Voimme nyt suorittaa koodin. Palaa aiemmin avaamiimme päätteisiin ja kirjoita komento go run. Tulos muistuttaa seuraavaa:

Servers: server1 (198.51.100.4) - New Jersey - $3.70 pending charges - 17.64/1000 GB bandwidth server2 (198.51.100.9) - Toronto - $1.70 pending charges - 3.24/500 GB bandwidth

Jos saat virheilmoituksen, varmista, että API-avaimesi ja IP-osoitteesi ovat oikein.

Johtopäätös

Tässä vaiheessa olet onnistuneesti oppinut virallisen API-asiakkaan käytön perusteet ja kirjoittanut ohjelman, joka näyttää tiedot tilisi palvelimista.

Jatkovaiheet

Täältä voit tehdä paljon enemmän. Voit esimerkiksi kirjoittaa ohjelman uuden palvelimen luomiseksi, kun muisti on vähissä. Voit kirjoittaa sovelluksen, joka päivittää palvelimesi automaattisesti, kun kaistanleveys tai tallennustila on vähissä. Voit jopa kirjoittaa työkalun, joka päivittää DNS-tietueet automaattisesti nykyisen IP-osoitteesi perusteella.

Lisätietoja govultr-kirjastosta löydät govultr-kirjaston dokumentaatiosta godocista .

govultr on avoimen lähdekoodin projekti . Jos löydät vikoja govultrissa, voit ilmoittaa niistä GitHubissa . Voit myös osallistua koodiin suoraan lähettämällä vetopyynnön .

Jätä kommentti

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja