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 .

Efterlad en kommentar

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.

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.

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.

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