Sådan bruger du Vultr Go-biblioteket til at få serveroplysninger

Introduktion

Det officielle Vultr Go-bibliotek kan bruges til at interagere med Vultr API . Vultr API giver dig mulighed for at kontrollere de ressourcer, der er knyttet til din konto, inklusive servere, dns, firewall, snapshots, netværk og mere. Denne vejledning vil give en introduktion til brug af den officielle Go API-klient ved at oprette en simpel applikation til at få information om dine servere.

Forudsætninger

  • En computer, der kører Windows, Linux eller macOS med Go 1.12+ installeret.
  • Grundlæggende programmeringskendskab.
  • Valgfrit: En IDE, der understøtter Go (f.eks. Visual Studio Code, emacs eller Atom).

Mål

  • For at lære, hvordan du bruger det officielle Vultr API-bibliotek.
  • At skrive et program for at se serverinformation.

Trin 1: Oprettelse af projektet

Først vil vi starte med at oprette et nyt modul (projekt). Normalt ville du bruge URL'en til et lager for din kode som modulnavn, men det er uden for denne tutorials omfang. Indtil videre vil vi bruge serverinfo som modulnavn.

For at oprette projektet skal du køre følgende kommandoer:

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

Trin 2: Download af biblioteket

Dernæst vil vi downloade API-biblioteket fra GitHub (en kode-hosting-side). For at downloade biblioteker skal du bruge go getkommandoen. Dette vil automatisk downloade biblioteket og dets afhængigheder, mens det tilføjes til go.mod- filen. Indtast følgende kommando i den samme terminal, som du åbnede tidligere:

go get github.com/vultr/govultr

Trin 3: Hent din API-nøgle

For at bruge API-klienten skal du bruge din API-nøgle. Du kan hente din API-nøgle fra API- fanen i Kontosektionen på dit Dashboard . Du skal også godkende din IP-adresse til at bruge API-nøglen. Du kan finde din IP-adresse ved at gå til ifconfig.me . Bemærk, at du leder efter din offentlige IP, ikke din private. Din private IP er, hvad du ville finde i dine netværksindstillinger på din computer, og er i et af følgende CIDR-intervaller: 10.0.0.0/8 , 172.16.0.0/12 eller 192.168.0.0/16 .

Når du har din IP-adresse, skal du tilføje den under sektionen Adgangskontrol . I feltet efter / skal du skrive 32. /32er en netmaske betydning 255.255.255.255. Det betyder, at kun din IP er inkluderet i sortimentet.

Advarsel: Beskyt din API-nøgle, som du ville beskytte din adgangskode. API-nøglen har adgang til hele din konto, inklusive fakturering, servere og lager.

Trin 4: Oprettelse af programfilen

Nu skal vi i gang med at arbejde på programmet. Åbn den mappe, vi oprettede i dit valg af editor, og opret en fil med navnet main.go.

Ind i filen skal du skrive eller kopiere og indsætte følgende kode:

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

Den package mainfortæller Go, at vi opretter en kommando, ikke et bibliotek. Importerklæringen erklærer de afhængigheder, vi vil bruge. func main()kaldes den funktion, når vi kører vores program.

Trin 5: Initialisering af API-klienten

Det næste trin er at initialisere API-klienten. For at gøre dette skal vi bruge funktionen govultr.NewClient(http.Client, string) . Tilføj følgende kode i main()- funktionen:

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

Erstat YOURAPIKEYmed den API-nøgle, du hentede tidligere.

Lad os se på denne kode lidt nærmere. På venstre side af :=, har vi client. Det er navnet på en variabel . En variabel gemmer værdier. På højre side har vi et funktionskald til govultr.NewClient . Den første parameter er nul, fordi vi ikke behøver at ændre standard HTTP-klienten. Den anden parameter er API-nøglen, vi bruger til at godkende os selv. Den :=Operatøren tildeler højre side til venstre side, i dette tilfælde, er resultatet af funktionen opkald til client.

Trin 6: Brug af API

Vores program gør stadig ikke noget endnu. For at gøre det nyttigt vil vi hente information om vores servere fra Vultr. Vi vil bruge funktionen govultr.Client.Server.List(context.Context) ([]govultr.Server, error) . Tilføj følgende kode i slutningen af main()- funktionen:

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

I denne kode kalder vi API-funktionen for at hente serverinformationen. Du skal ikke bekymre dig om betydningen af konteksten endnu, da det er et mere avanceret emne. Indtil videre er alt, hvad vi behøver at vide, at konteksten styrer, hvordan API-klienten kører. context.Background() returnerer en tom kontekst . Efter at vi har hentet serveroplysningerne i de to variabler, servere og err , kontrollerer vi, om der var en fejl. Hvis det er tilfældet, fortæller vi brugeren om fejlen og afslutter med kode 1 (fejl).

Trin 7: Visning af oplysningerne

Nu, hvor vi har en vifte af servere i servere variabel ( [] govultr.Server ), kan vi faktisk vise det. Tilføj følgende kode i slutningen af main()- funktionen:

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

Først udskriver (viser) vi en overskrift, Servers:. Så, vi løkke over servere array, ignorere indekset ved at tildele den til _, og tildele den nuværende server til server variabel. Inde i løkken viser vi serverens etiket, IP-adresse, placering, afventende gebyrer, aktuelle båndbredde og tilladte båndbredde. For at gøre dette effektivt bruger vi formatstrenge , den streng, der ligner " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". De %smidler til at erstatte den næste streng, mens %.2fmidlerne til at udskrive den næste flyder (decimaltal) afrundet til 2 decimaler. Resten af ​​formatstrengen udskrives bogstaveligt (som den er).

Trin 8: Løb

På dette tidspunkt skal din kode se ud som følgende:

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

Vi kan nu køre koden. Vend tilbage til terminalen, vi åbnede tidligere, og indtast kommandoen go run. Outputtet vil ligne følgende:

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

Hvis du modtager en fejl, skal du sikre dig, at din API-nøgle og IP-adresse er korrekte.

Konklusion

På dette tidspunkt vil du med succes have lært det grundlæggende i, hvordan du bruger den officielle API-klient og skrevet et program, som viser information om serverne på din konto.

Yderligere skridt

Herfra kan du gøre meget mere. For eksempel kan du skrive et program til at klargøre en ny server, når du mangler hukommelse. Du kan skrive en app til automatisk at opgradere din server, når du mangler båndbredde eller lagerplads. Du kan endda skrive et værktøj til automatisk at opdatere DNS-poster baseret på din nuværende IP.

For mere information om govultr-biblioteket kan du finde govultr-bibliotekets dokumentation på godoc .

govultr er et open source-projekt . Hvis du finder nogen fejl i govultr, kan du rapportere dem på GitHub . Du kan også bidrage til koden direkte ved at indsende en pull-anmodning .


Fastgøring af blokopbevaring

Fastgøring af blokopbevaring

Bloklagervolumener knyttes til instanser som ekstra diske. Du skal vedhæfte volumen til en instans, før den kan bruges. Flere bind kan b

Konfiguration af statisk netværk og IPv6 på CentOS 7

Konfiguration af statisk netværk og IPv6 på CentOS 7

VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere

Hvilke porte er blokeret?

Hvilke porte er blokeret?

Vi blokerer flere udgående porte for netværkssikkerhed. Blokeret som standard Du kan anmode om at disse blokeringer fjernes ved at åbne en supportbillet. TCP-port 2

Windows Custom ISO med VirtIO-drivere

Windows Custom ISO med VirtIO-drivere

Opbygning af Windows ISO (kun serverversioner) Få de seneste binære VirtIO-drivere til Windows, pakket som en ISO-fil, fra

Windows Server 2016 Gendannelsestilstand

Windows Server 2016 Gendannelsestilstand

Når du får adgang til gendannelsestilstand på Windows Server 2016, kan du opleve en stopfejl (blå skærm). Løsningen er at få adgang til Repair Computer-optionen

Installer Nginx + PHP FPM + Caching + MySQL på Ubuntu 12.04

Installer Nginx + PHP FPM + Caching + MySQL på Ubuntu 12.04

Sandsynligvis vil mange mennesker bruge deres Vultr VPS'er som webservere, et godt valg ville være Nginx som webserver. I dette emne vil jeg beskrive o

Vultr Block Storage

Vultr Block Storage

Vultrs Cloud Block Storage-teknologi giver dig mulighed for at montere skalerbar storage med høj ydeevne til din instans, hvilket gør pladshåndtering betydeligt mere

Sådan får du adgang til din Vultr VPS

Sådan får du adgang til din Vultr VPS

Vultr giver flere forskellige måder at få adgang til din VPS for at konfigurere, installere og bruge. Adgangslegitimationsoplysninger Standardadgangsoplysningerne for din VPS ar

Hvordan ændrer jeg størrelsen på min VPS-disk?

Hvordan ændrer jeg størrelsen på min VPS-disk?

Denne vejledning forklarer, hvordan du ændrer størrelsen på harddisken på en Vultr VPS. Hvis du for nylig har opgraderet din plan til en plan med en større disk, så kan du følge disse

Brugerdefineret ISO på Bare Metal

Brugerdefineret ISO på Bare Metal

Introduktion Vultr har i øjeblikket ikke et system på plads til at tillade brugerdefinerede ISO'er at blive uploadet og monteret på bart metal. Dette stopper dog ikke yo

Ubuntu 16.04 Billeder Rapporter fejl om EC2 Metadata Service

Ubuntu 16.04 Billeder Rapporter fejl om EC2 Metadata Service

Ved opstart kan nogle ældre Ubuntu 16.04-forekomster vise følgende advarsel: ***************************************** ****************************************

Vultr Object Storage

Vultr Object Storage

S3-kompatibel* objektlagring er nu tilgængelig på Vultr-skyen. Vores objektlagringsteknologi er overkommelig, skalerbar og nem at integrere i dig

Aktiver Windows Audio på en Windows Server-instans

Aktiver Windows Audio på en Windows Server-instans

Bemærk: Denne vejledning vil fungere for Windows 2012 R2 og Windows 2016 forekomster. Windows-servere har som standard ikke Windows Audio-tjenesten aktiveret.

Eksempel på autorisationsbrev for BGP-meddelelser

Eksempel på autorisationsbrev for BGP-meddelelser

Brug venligst følgende skabelon, når du anmoder om tilladelse til BGP-meddelelser. AUTORISATIONSBREV [DATO] Til hvem det måtte vedrøre, Thi

Krav til upload af en OS ISO til Vultr

Krav til upload af en OS ISO til Vultr

Vultr tilbyder en bred vifte af operativsystemer at vælge imellem. Nogle gange vil du dog måske uploade dit eget brugerdefinerede operativsystem ISO såsom Kal

Sådan opretter du omvendte DNS- eller PTR-poster i Vultr-kontrolpanelet

Sådan opretter du omvendte DNS- eller PTR-poster i Vultr-kontrolpanelet

Introduktion til Vultr Reverse DNS For at tilføje en PTR eller Reverse DNS-record for din instans IP-adresse, skal du følge nedenstående trin:

Introduktion til Vultr DNS

Introduktion til Vultr DNS

Vultr tilbyder gratis DNS-hosting til kunders domæner. Navneserverne er på et AnyCAST-netværk og sikrer hurtig DNS-opløsning. For at bruge Vultrs DNS skal du

Få adgang til enkeltbrugertilstand (Nulstil root-adgangskode)

Få adgang til enkeltbrugertilstand (Nulstil root-adgangskode)

For at nulstille din servers root-adgangskode, skal du starte op i enkeltbrugertilstand. Få adgang til din server i Vultr-kundeportalen, og følg derefter trinnet

Flere private netværk

Flere private netværk

Vultr introducerede support til flere private netværk i begyndelsen af ​​2018. Denne funktion tilbydes som en forbedring af standard private netværk. Whe

Sådan bruger du Vultr Go-biblioteket til at få serveroplysninger

Sådan bruger du Vultr Go-biblioteket til at få serveroplysninger

Introduktion Det officielle Vultr Go-bibliotek kan bruges til at interagere med Vultr API. Vultr API giver dig mulighed for at kontrollere de ressourcer, der er knyttet til dig

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere