Slik bruker du Vultr Go-biblioteket for å få serverinformasjon

Introduksjon

Det offisielle Vultr Go-biblioteket kan brukes til å samhandle med Vultr API . Vultr API lar deg kontrollere ressursene knyttet til kontoen din, inkludert servere, dns, brannmur, øyeblikksbilder, nettverk og mer. Denne opplæringen vil gi en introduksjon til bruk av den offisielle Go API-klienten ved å lage en enkel applikasjon for å få informasjon om serverne dine.

Forutsetninger

  • En datamaskin som kjører Windows, Linux eller macOS med Go 1.12+ installert.
  • Grunnleggende programmeringskunnskap.
  • Valgfritt: En IDE som støtter Go (for eksempel Visual Studio Code, emacs eller Atom).

Mål

  • For å lære hvordan du bruker det offisielle Vultr API-biblioteket.
  • For å skrive et program for å se serverinformasjon.

Trinn 1: Oppretting av prosjektet

Først vil vi starte med å lage en ny modul (prosjekt). Vanligvis vil du bruke URL-en til et depot for koden din som modulnavn, men det er utenfor omfanget av denne opplæringen. Foreløpig vil vi bruke serverinfo som modulnavn.

For å opprette prosjektet, kjør 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

Trinn 2: Laste ned biblioteket

Deretter vil vi laste ned API-biblioteket fra GitHub (en kodevertsside). For å laste ned biblioteker, må du bruke go getkommandoen. Dette vil automatisk laste ned biblioteket og dets avhengigheter mens det legges til i go.mod- filen. I den samme terminalen du åpnet tidligere, skriv inn følgende kommando:

go get github.com/vultr/govultr

Trinn 3: Få API-nøkkelen din

For å bruke API-klienten trenger du API-nøkkelen din. Du kan hente API-nøkkelen din fra API- fanen i Konto- delen av dashbordet . Du må også autorisere IP-adressen din for å bruke API-nøkkelen. Du finner IP-adressen din ved å gå til ifconfig.me . Merk at du leter etter din offentlige IP, ikke din private. Din private IP er det du finner i nettverksinnstillingene på datamaskinen din, og er i ett av følgende CIDR-områder: 10.0.0.0/8 , 172.16.0.0/12 eller 192.168.0.0/16 .

Når du har IP-adressen din, legger du den til under Tilgangskontroll- delen. I boksen etter / skriver 32. /32er en nettmaske-betydning 255.255.255.255. Dette betyr at kun din IP er inkludert i utvalget.

Advarsel: Beskytt API-nøkkelen din på samme måte som du ville beskyttet passordet ditt. API-nøkkelen har tilgang til hele kontoen din, inkludert fakturering, servere og lagring.

Trinn 4: Opprette programfilen

Nå skal vi begynne å jobbe med programmet. Åpne opp mappen vi opprettet i ditt valg av editor, og lag en fil med navnet main.go.

Inne i filen skriver du eller kopierer og limer inn følgende kode:

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

Den package mainforteller Go at vi lager en kommando, ikke et bibliotek. Importerklæringen erklærer avhengighetene vi skal bruke. func main()er funksjonen som kalles når vi kjører programmet vårt.

Trinn 5: Initialisering av API-klienten

Det neste trinnet er å initialisere API-klienten. For å gjøre dette, må vi bruke funksjonen govultr.NewClient(http.Client, string) . Legg til følgende kode i main()- funksjonen:

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

Erstatt YOURAPIKEYmed API-nøkkelen du hentet tidligere.

La oss se på denne koden litt nærmere. På venstre side av :=, har vi client. Det er navnet på en variabel . En variabel lagrer verdier. På høyre side har vi et funksjonskall til govultr.NewClient . Den første parameteren er null, fordi vi ikke trenger å endre standard HTTP-klient. Den andre parameteren er API-nøkkelen vi bruker for å autentisere oss selv. Den :=operatør tildeler den høyre side til venstre side, i dette tilfellet er resultatet av funksjonskall til client.

Trinn 6: Bruk av API

Programmet vårt gjør fortsatt ingenting. For å gjøre det nyttig skal vi hente informasjon om serverne våre fra Vultr. Vi vil bruke funksjonen govultr.Client.Server.List(context.Context) ([]govultr.Server, error) . Legg til følgende kode på slutten av main()- funksjonen:

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

I denne koden kaller vi API-funksjonen for å hente serverinformasjonen. Ikke bekymre deg for betydningen av konteksten ennå, siden det er et mer avansert emne. For nå er alt vi trenger å vite at konteksten styrer hvordan API-klienten kjører. context.Background() returnerer en tom kontekst . Etter at vi har hentet serverinformasjonen inn i de to variablene, servere og err , sjekker vi om det var en feil. I så fall forteller vi brukeren om feilen og avslutter med kode 1 (feil).

Trinn 7: Viser informasjonen

Når vi nå har en rekke servere i servere variable ( [] govultr.Server ), kan vi vise faktisk det. Legg til følgende kode på slutten av main()- funksjonen:

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 skriver vi ut (viser) en overskrift, Servers:. Da vi sløyfe over servere array, ignorerer indeksen ved å tilordne den til _, og å tilordne den aktuelle serveren til den server variabel. Inne i loopen viser vi serverens etikett, IP-adresse, plassering, ventende kostnader, gjeldende båndbredde og tillatt båndbredde. For å gjøre dette effektivt bruker vi formatstrenger , strengen som ser ut som " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". De %smidler til å erstatte den neste strengen, mens %.2fmidler til å skrive ut neste float (desimaltall) rundet av til 2 desimaler. Resten av formatstrengen skrives ut bokstavelig (som den er).

Trinn 8: Løping

På dette tidspunktet skal koden din se slik ut:

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 nå kjøre koden. Gå tilbake til terminalen vi åpnet tidligere og skriv inn kommandoen go run. Utgangen 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 får en feil, må du kontrollere at API-nøkkelen og IP-adressen din er riktig.

Konklusjon

På dette tidspunktet vil du ha lært det grunnleggende om hvordan du bruker den offisielle API-klienten og skrevet et program som viser informasjon om serverne på kontoen din.

Videre trinn

Herfra kan du gjøre mye mer. Du kan for eksempel skrive et program for å klargjøre en ny server når du har lite minne. Du kan skrive en app for å automatisk oppgradere serveren din når du har lite båndbredde eller lagringsplass. Du kan til og med skrive et verktøy for å automatisk oppdatere DNS-poster basert på din nåværende IP.

For mer informasjon om govultr-biblioteket, kan du finne govultr-bibliotekets dokumentasjon på godoc .

govultr er et åpen kildekode-prosjekt . Hvis du finner noen feil i govultr, kan du rapportere dem på GitHub . Du kan også bidra direkte til koden ved å sende inn en pull-forespørsel .

Legg igjen 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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer