Kuidas kasutada Vultr Go raamatukogu serveriteabe hankimiseks

Sissejuhatus

Vultr API-ga suhtlemiseks saab kasutada ametlikku Vultr Go raamatukogu . Vultr API võimaldab teil juhtida oma kontoga seotud ressursse, sealhulgas servereid, DNS-i, tulemüüri, hetktõmmiseid, võrku ja palju muud. See õpetus tutvustab ametliku Go API kliendi kasutamist, luues lihtsa rakenduse oma serverite kohta teabe hankimiseks.

Eeltingimused

  • Arvuti, milles töötab Windows, Linux või macOS ja on installitud Go 1.12+.
  • Programmeerimise algteadmised.
  • Valikuline: Go-d toetav IDE (nt Visual Studio Code, emacs või Atom).

Eesmärgid

  • Õppige kasutama ametlikku Vultr API teeki.
  • Programmi kirjutamine serveri teabe vaatamiseks.

1. samm: projekti loomine

Kõigepealt alustame uue mooduli (projekti) loomisega. Tavaliselt kasutaksite mooduli nimena oma koodi hoidla URL-i, kuid see ei kuulu selle õpetuse raamesse. Praegu kasutame mooduli nimena serverinfot .

Projekti loomiseks käivitage järgmised käsud:

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

2. samm: teegi allalaadimine

Järgmisena laadime GitHubist (koodimajutussait) alla API teegi. Teekide allalaadimiseks peate kasutama go getkäsku. See laadib teegi ja selle sõltuvused automaatselt alla, lisades selle faili go.mod . Sisestage samasse terminali, mille varem avasite, järgmine käsk:

go get github.com/vultr/govultr

3. samm: hankige oma API-võti

API kliendi kasutamiseks vajate oma API võtit. API-võtme saate hankida juhtpaneeli jaotise Konto vahekaardilt API . Samuti peate API-võtme kasutamiseks volitama oma IP-aadressi. Oma IP-aadressi leiate aadressilt ifconfig.me . Pange tähele, et otsite oma avalikku , mitte privaatset IP-d. Teie privaatne IP on see, mille leiate oma arvuti võrguseadetest ja see on ühes järgmistest CIDR-i vahemikest: 10.0.0.0/8 , 172.16.0.0/12 või 192.168.0.0/16 .

Kui teil on oma IP-aadress, lisage see jaotisesse Juurdepääsukontroll . Kasti pärast / kirjuta 32. /32on võrgumaski tähendus 255.255.255.255. See tähendab, et vahemikku on kaasatud ainult teie IP.

Hoiatus. Kaitske oma API võtit nii, nagu kaitseksite oma parooli. API-võtmel on juurdepääs kogu teie kontole, sealhulgas arveldamisele, serveritele ja salvestusruumile.

4. samm: programmifaili loomine

Nüüd hakkame programmi kallal töötama. Avage kaust, mille lõime teie valitud redaktoris, ja looge fail nimega main.go.

Sisestage või kopeerige ja kleepige faili sees järgmine kood:

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

package mainÜtleb Go et me loome käsu, mitte raamatukogu. Impordiavaldus deklareerib kasutatavad sõltuvused. func main()on funktsioon, mida kutsutakse programmi käivitamisel.

5. samm: API kliendi lähtestamine

Järgmine samm on API kliendi lähtestamine. Selleks peame kasutama funktsiooni govultr.NewClient(http.Client, string) . Lisage funktsiooni main() sisse järgmine kood :

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

Asendage YOURAPIKEYvarem hangitud API võtmega.

Vaatame seda koodi veidi lähemalt. Faili vasakul küljel on :=meil client. See on muutuja nimi . Muutuja salvestab väärtused. Paremal küljel on funktsioonikutse govultr.NewClient . Esimene parameeter on null, sest me ei pea muutma HTTP vaikeklienti. Teine parameeter on API-võti, mida me enda autentimiseks kasutame. :=Operaator määrab paremal äärel vasakul küljel, sel juhul tulemus funktsioon kõne client.

6. samm: API kasutamine

Meie programm ei tee veel midagi. Et see oleks kasulik, hangime Vultrist teavet oma serverite kohta. Kasutame funktsiooni govultr.Client.Server.List(context.Context) ([]govultr.Server, error) . Lisage funktsiooni main() lõppu järgmine kood :

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

Selles koodis kutsume serveri teabe hankimiseks API funktsiooni. Ärge muretsege veel konteksti tähenduse pärast , kuna see on keerukam teema. Praegu peame teadma ainult seda, et kontekst juhib seda, kuidas API klient töötab. kontekst.Background() tagastab tühja konteksti . Pärast serveriteabe toomist kahte muutujasse, serverid ja err , kontrollime, kas tegemist oli veaga. Kui jah, teavitame kasutajat veast ja väljume koodiga 1 (viga).

7. samm: teabe kuvamine

Nüüd, kui meil on serverimuutujas ( []govultr.Server ) rida servereid , saame selle kuvada. Lisage funktsiooni main() lõppu järgmine kood :

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, ) }

Esiteks prindime (kuvame) päise, Servers:. Seejärel liigume üle serverite massiivi, ignoreerides indeksit, määrates selle väärtusele _, ja määrates praeguse serveri serveri muutujale. Silmuse sees kuvame serveri sildi, IP-aadressi, asukoha, ootel tasud, praeguse ribalaiuse ja lubatud ribalaiuse. Selle tõhusaks tegemiseks kasutame vormingustringe , string, mis näeb välja nagu " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Vahendid %sjärgmise stringi asendamiseks, samas kui %.2fvahendid järgmise ujukarvu (kümnendarvu) trükkimiseks ümardatuna kahe kümnendkohani. Ülejäänud vormingustring trükitakse sõna-sõnalt (nagu on).

8. samm: jooksmine

Sel hetkel peaks teie kood välja nägema järgmine:

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, ) } }

Nüüd saame koodi käivitada. Naaske varem avatud terminali ja sisestage käsk go run. Väljund sarnaneb järgmisega:

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

Kui saate veateate, veenduge, et teie API-võti ja IP-aadress on õiged.

Järeldus

Sel hetkel olete edukalt õppinud ametliku API kliendi kasutamise põhitõdesid ja kirjutanud programmi, mis kuvab teie kontol olevate serverite kohta teavet.

Edasised sammud

Siit saate teha palju enamat. Näiteks võite kirjutada programmi uue serveri ettevalmistamiseks, kui teil on vähe mälu. Kui ribalaius või salvestusruum on tühi, võite kirjutada rakenduse, mis uuendab oma serverit automaatselt. Võite isegi kirjutada tööriista DNS-kirjete automaatseks värskendamiseks teie praeguse IP-aadressi alusel.

Govultri teegi kohta lisateabe saamiseks leiate govultri raamatukogu dokumentatsiooni saidil godoc .

govultr on avatud lähtekoodiga projekt . Kui leiate rakenduses govultr vigu, saate neist GitHubis teatada . Koodile saate panustada ka otse, esitades tõmbetaotluse .

KKK, Programmeerimine

Jäta kommentaar

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit