Kako uporabljati knjižnico Vultr Go za informacije o strežniku

Uvod

Uradna knjižnica Vultr Go se lahko uporablja za interakcijo z API-jem Vultr . Vultr API vam omogoča nadzor virov, povezanih z vašim računom, vključno s strežniki, dns, požarnim zidom, posnetki, omrežjem in drugim. Ta vadnica bo predstavila uporabo uradnega odjemalca Go API z ustvarjanjem preproste aplikacije za pridobivanje informacij o vaših strežnikih.

Predpogoji

  • Računalnik z operacijskim sistemom Windows, Linux ali macOS z nameščeno različico Go 1.12+.
  • Osnovno znanje programiranja.
  • Izbirno: IDE, ki podpira Go (na primer Visual Studio Code, emacs ali Atom).

Cilji

  • Če želite izvedeti, kako uporabljati uradno knjižnico API Vultr.
  • Za pisanje programa za ogled informacij o strežniku.

1. korak: Ustvarjanje projekta

Najprej bomo začeli z ustvarjanjem novega modula (projekta). Običajno bi kot ime modula uporabili URL do repozitorija za svojo kodo, vendar to presega obseg te vadnice. Za zdaj bomo uporabili serverinfo kot ime modula.

Če želite ustvariti projekt, zaženite naslednje ukaze:

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

2. korak: Prenos knjižnice

Nato bomo prenesli knjižnico API z GitHuba (spletno mesto za gostovanje kode). Če želite prenesti knjižnice, morate uporabiti go getukaz. To bo samodejno preneslo knjižnico in njene odvisnosti, medtem ko jo bo dodalo v datoteko go.mod . V istem terminalu, ki ste ga odprli prej, vnesite naslednji ukaz:

go get github.com/vultr/govultr

3. korak: pridobivanje ključa API

Za uporabo odjemalca API potrebujete svoj ključ API. Svoj ključ API lahko pridobite na kartici API v razdelku Račun na vaši nadzorni plošči . Prav tako boste morali pooblastiti svoj naslov IP za uporabo ključa API. Svoj IP naslov lahko najdete tako, da obiščete ifconfig.me . Upoštevajte, da iščete svoj javni IP in ne zasebni. Vaš zasebni IP je tisto, kar bi našli v omrežnih nastavitvah na vašem računalniku in je v enem od naslednjih obsegov CIDR: 10.0.0.0/8 , 172.16.0.0/12 ali 192.168.0.0/16 .

Ko imate svoj naslov IP, ga dodajte v razdelek Nadzor dostopa . V polje za / vnesite 32. /32je pomen omrežne maske 255.255.255.255. To pomeni, da je v obseg vključen samo vaš IP.

Opozorilo: Zaščitite svoj ključ API, kot bi zaščitili svoje geslo. Ključ API ima dostop do celotnega računa, vključno z obračunavanjem, strežniki in shranjevanjem.

4. korak: Ustvarjanje programske datoteke

Zdaj bomo začeli delati na programu. Odprite mapo, ki smo jo ustvarili v urejevalniku po vaši izbiri, in ustvarite datoteko z imenom main.go.

Znotraj datoteke vnesite ali kopirajte in prilepite naslednjo kodo:

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

package mainPove Go, da smo ustvarili ukaz, ne pa knjižnica. Stavek uvoza navaja odvisnosti, ki jih bomo uporabljali. func main()je funkcija, ki se kliče, ko zaženemo naš program.

5. korak: Inicializacija odjemalca API

Naslednji korak je inicializacija odjemalca API. Za to moramo uporabiti funkcijo govultr.NewClient(http.Client, string) . V funkcijo main() dodajte naslednjo kodo :

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

Zamenjajte YOURAPIKEYs ključem API, ki ste ga pridobili prej.

Poglejmo si to kodo nekoliko bližje. Na levi strani :=imamo client. To je ime spremenljivke . Spremenljivka shranjuje vrednosti. Na desni strani imamo klic funkcije govultr.NewClient . Prvi parameter je nič, ker nam ni treba spremeniti privzetega odjemalca HTTP. Drugi parameter je ključ API, ki ga uporabljamo za preverjanje pristnosti. :=Operater dodeli desno stranjo na levi strani, v tem primeru, je rezultat funkcije poziv k client.

6. korak: Uporaba API-ja

Naš program še vedno ne naredi ničesar. Da bo uporabno, bomo informacije o naših strežnikih pridobili iz Vultra. Uporabili bomo funkcijo govultr.Client.Server.List(context.Context) ([]govultr.Server, napaka) . Dodajte naslednjo kodo na konec funkcije main() :

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

V tej kodi kličemo funkcijo API za pridobivanje informacij o strežniku. Naj vas še ne skrbi pomen konteksta , saj je to bolj napredna tema. Zaenkrat moramo vedeti le, da kontekst nadzoruje, kako deluje odjemalec API. context.Background() vrne prazen kontekst . Ko pridobimo informacije o strežniku v dve spremenljivki, servers in err , preverimo, ali je prišlo do napake. Če je tako, sporočimo uporabniku, da obvestimo o napaki in zapustimo s kodo 1 (napaka).

7. korak: Prikaz informacij

Zdaj, ko imamo v spremenljivki strežnikov ( []govultr.Server ) niz strežnikov , ga lahko dejansko prikažemo. Dodajte naslednjo kodo na konec funkcije main() :

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

Najprej natisnemo (prikažemo) glavo, Servers:. Nato se pomaknemo po nizu strežnikov , pri čemer prezremo indeks tako, da ga dodelimo _, in trenutni strežnik dodelimo spremenljivki strežnika . Znotraj zanke prikažemo oznako strežnika, naslov IP, lokacijo, čakajoče stroške, trenutno pasovno širino in dovoljeno pasovno širino. Da bi to naredili učinkovito, uporabljamo nize formata , niz, ki je videti kot " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Za %ssredstva nadomestiti naslednji niz, je pa %.2fsredstvo za tiskanje naslednjo float (decimalno število), zaokroženo na 2 decimalni mesti. Preostali del formatnega niza je natisnjen dobesedno (kot je).

8. korak: Tek

Na tej točki bi morala vaša koda izgledati takole:

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

Zdaj lahko zaženemo kodo. Vrnite se na terminal, ki smo ga odprli prej, in vnesite ukaz go run. Izhod bo podoben naslednjemu:

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

Če prejmete napako, preverite, ali sta vaš ključ API in naslov IP pravilna.

Zaključek

Na tej točki ste se uspešno naučili osnov uporabe uradnega odjemalca API in napisali program, ki bo prikazal informacije o strežnikih v vašem računu.

Nadaljnji koraki

Od tu lahko naredite veliko več. Na primer, lahko napišete program za pripravo novega strežnika, ko vam primanjkuje pomnilnika. Lahko napišete aplikacijo za samodejno nadgradnjo strežnika, ko vam primanjkuje pasovne širine ali prostora za shranjevanje. Lahko bi celo napisali orodje za samodejno posodabljanje zapisov DNS glede na vaš trenutni IP.

Za več informacij o knjižnici govultr najdete dokumentacijo knjižnice govultr na godoc .

govultr je odprtokodni projekt . Če najdete kakršne koli napake v govultr, jih lahko prijavite na GitHubu . K kodi lahko prispevate tudi neposredno tako, da pošljete zahtevo za vleko .

Pogosta vprašanja, programiranje

Pusti komentar

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več