Kaip naudotis „Vultr Go“ biblioteka serverio informacijai gauti

Įvadas

Oficialioji Vultr Go biblioteka gali būti naudojama sąveikai su Vultr API . Vultr API leidžia valdyti su paskyra susietus išteklius, įskaitant serverius, DNS, ugniasienę, momentines nuotraukas, tinklą ir kt. Šioje pamokoje bus supažindinama su oficialiu Go API klientu, sukuriant paprastą programą, skirtą informacijai apie serverius gauti.

Būtinos sąlygos

  • Kompiuteris, kuriame veikia „Windows“, „Linux“ arba „MacOS“, kuriame įdiegta „Go 1.12+“.
  • Pagrindinės programavimo žinios.
  • Pasirenkama: IDE, palaikanti „Go“ (pvz., „Visual Studio Code“, „emacs“ arba „Atom“).

Tikslai

  • Norėdami sužinoti, kaip naudotis oficialia Vultr API biblioteka.
  • Parašyti programą serverio informacijai peržiūrėti.

1 veiksmas: projekto kūrimas

Pirmiausia pradėsime kurdami naują modulį (projektą). Paprastai kaip modulio pavadinimą naudojate savo kodo saugyklos URL, tačiau tai nepatenka į šios mokymo programos taikymo sritį. Kol kas kaip modulio pavadinimą naudosime serverinfo .

Norėdami sukurti projektą, paleiskite šias komandas:

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

2 veiksmas: atsisiųskite biblioteką

Tada atsisiųsime API biblioteką iš „GitHub“ (kodo prieglobos svetainės). Norėdami atsisiųsti bibliotekas, turite naudoti go getkomandą. Tai automatiškai atsisiųs biblioteką ir jos priklausomybes, pridėdama ją prie failo go.mod . Tame pačiame terminale, kurį atidarėte anksčiau, įveskite šią komandą:

go get github.com/vultr/govultr

3 veiksmas: gaukite API raktą

Norėdami naudoti API klientą, jums reikės API rakto. API raktą galite nuskaityti informacijos suvestinės paskyros skilties API skirtuke . Taip pat turėsite įgalioti savo IP adresą, kad galėtumėte naudoti API raktą. Savo IP adresą galite rasti apsilankę adresu ifconfig.me . Atminkite, kad jūs ieškote savo viešojo , o ne privataus IP. Jūsų privatus IP yra tas, kurį rastumėte savo kompiuterio tinklo nustatymuose ir yra viename iš šių CIDR diapazonų: 10.0.0.0/8 , 172.16.0.0/12 arba 192.168.0.0/16 .

Kai turėsite savo IP adresą, pridėkite jį prie prieigos kontrolės skiltyje. Laukelyje po / įveskite 32. /32yra tinklo kaukės reikšmė 255.255.255.255. Tai reiškia, kad į diapazoną įtrauktas tik jūsų IP.

Įspėjimas: apsaugokite savo API raktą taip, kaip apsaugotumėte slaptažodį. API raktas turi prieigą prie visos paskyros, įskaitant atsiskaitymą, serverius ir saugyklą.

4 veiksmas: sukurkite programos failą

Dabar mes pradedame dirbti su programa. Atidarykite aplanką, kurį sukūrėme pasirinkę redaktorių, ir sukurkite failą pavadinimu main.go.

Failo viduje įveskite arba nukopijuokite ir įklijuokite šį kodą:

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

package mainGo “ nurodo, kad kuriame komandą, o ne biblioteką. Importavimo ataskaitoje deklaruojamos priklausomybės, kurias naudosime. func main()yra funkcija, kuri iškviečiama, kai vykdome savo programą.

5 veiksmas: inicijuokite API klientą

Kitas žingsnis – inicijuoti API klientą. Norėdami tai padaryti, turime naudoti funkciją govultr.NewClient(http.Client, string) . Įtraukite šį kodą į main() funkciją:

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

Pakeiskite YOURAPIKEYAPI raktu, kurį gavote anksčiau.

Pažvelkime į šį kodą šiek tiek atidžiau. Kairėje pusėje :=turime client. Tai yra kintamojo pavadinimas . Kintamasis saugo reikšmes. Dešinėje pusėje yra funkcijos iškvietimas į govultr.NewClient . Pirmasis parametras yra nulis, nes mums nereikia keisti numatytojo HTTP kliento. Antrasis parametras yra API raktas, kurį naudojame autentifikuoti. :=Operatorius priskiria dešinės į kairę pusę, šiuo atveju, skambinimo funkcijos sukelti client.

6 veiksmas: API naudojimas

Mūsų programa dar nieko nedaro. Kad tai būtų naudinga, mes ketiname gauti informaciją apie savo serverius iš Vultr. Naudosime funkciją govultr.Client.Server.List(context.Context) ([]govultr.Server, error) . Funkcijos main() pabaigoje pridėkite šį kodą :

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

Šiame kode mes iškviečiame API funkciją, kad gautume serverio informaciją. Dar nesijaudinkite dėl konteksto reikšmės , nes tai sudėtingesnė tema. Kol kas viskas, ką turime žinoti, yra tai, kad kontekstas valdo, kaip veikia API klientas. kontekstas.Background() grąžina tuščią kontekstą . Nuskaitę serverio informaciją į du kintamuosius, serverius ir err , patikriname, ar įvyko klaida. Jei taip, informuojame vartotoją apie klaidą ir išeiname su kodu 1 (klaida).

7 veiksmas: informacijos rodymas

Dabar, kai turime daugybę serverių serverių kintamajame ( []govultr.Server ), galime jį rodyti. Funkcijos main() pabaigoje pridėkite šį kodą :

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

Pirmiausia atspausdiname (rodome) antraštę, Servers:. Tada pereiname per serverių masyvą, nepaisydami indekso, priskirdami jį _, o dabartinį serverį priskirdami serverio kintamajam. Ciklo viduje rodome serverio etiketę, IP adresą, vietą, laukiančius mokesčius, esamą pralaidumą ir leistiną pralaidumą. Kad tai padarytume efektyviai, naudojame formato eilutes , kurios atrodo kaip " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Priemonės, %sskirtos pakeisti kitą eilutę, o %.2fpriemonės, skirtos spausdinti kitą eilutę (dešimtainis skaičius), suapvalintos iki 2 skaitmenų po kablelio. Likusi formato eilutė spausdinama pažodžiui (tokia, kokia yra).

8 veiksmas: bėgimas

Šiuo metu jūsų kodas turėtų atrodyti taip:

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

Dabar galime paleisti kodą. Grįžkite į anksčiau atidarytą terminalą ir įveskite komandą go run. Išvestis bus panaši į:

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

Jei gaunate klaidą, įsitikinkite, kad API raktas ir IP adresas yra teisingi.

Išvada

Šiuo metu jūs sėkmingai išmoksite pagrindinius, kaip naudotis oficialiu API klientu, ir parašysite programą, kuri parodys informaciją apie jūsų paskyros serverius.

Tolimesni žingsniai

Iš čia galite padaryti daug daugiau. Pavyzdžiui, galite parašyti programą, skirtą naujam serveriui aprūpinti, kai trūksta atminties. Galite parašyti programą, kuri automatiškai atnaujintų serverį, kai trūksta pralaidumo ar saugyklos. Jūs netgi galite parašyti įrankį, skirtą automatiškai atnaujinti DNS įrašus pagal jūsų dabartinį IP.

Norėdami gauti daugiau informacijos apie govultr biblioteką, galite rasti govultr bibliotekos dokumentaciją apie godoc .

govultr yra atvirojo kodo projektas . Jei radote kokių nors „govultr“ klaidų, galite apie jas pranešti „ GitHub“ . Taip pat galite tiesiogiai prisidėti prie kodo pateikdami užklausą .

Palikti komentarą

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį