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 .


Feste blokklagring

Feste blokklagring

Blokker lagringsvolumer kobles til forekomster som ekstra disker. Du må koble volumet til en instans før det kan brukes. Flere bind kan b

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Hvilke porter er blokkert?

Hvilke porter er blokkert?

Vi blokkerer flere utgående porter for nettverkssikkerhet. Blokkert som standard. Du kan be om at disse blokkeringene fjernes ved å åpne en støttebillett. TCP-port 2

Windows Custom ISO med VirtIO-drivere

Windows Custom ISO med VirtIO-drivere

Bygge Windows ISO (kun serverversjoner) Få de nyeste binære VirtIO-driverne for Windows, pakket som en ISO-fil, fra

Windows Server 2016 gjenopprettingsmodus

Windows Server 2016 gjenopprettingsmodus

Når du får tilgang til gjenopprettingsmodus på Windows Server 2016, kan du oppleve en stoppfeil (blå skjerm). Løsningen er å få tilgang til alternativet Reparer datamaskin

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

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

Sannsynligvis kommer mange mennesker til å bruke Vultr VPSene sine som webservere, et godt valg ville være Nginx som webserver. I dette emnet skal jeg beskrive o

Vultr Block Storage

Vultr Block Storage

Vultrs Cloud Block Storage-teknologi lar deg montere skalerbar lagring med høy ytelse til instansen din, noe som gjør plassadministrasjonen betydelig mer

Slik får du tilgang til Vultr VPS

Slik får du tilgang til Vultr VPS

Vultr gir flere forskjellige måter å få tilgang til din VPS for å konfigurere, installere og bruke. Access Credentials Standard tilgangslegitimasjon for din VPS ar

Hvordan endrer jeg størrelsen på VPS-disken min?

Hvordan endrer jeg størrelsen på VPS-disken min?

Denne guiden forklarer hvordan du endrer størrelse på harddisken på en Vultr VPS. Hvis du nylig har oppgradert planen din til en plan med en større disk, kan du følge disse

Tilpasset ISO på Bare Metal

Tilpasset ISO på Bare Metal

Introduksjon Vultr har foreløpig ikke et system på plass som lar tilpassede ISO-er lastes opp og monteres på bart metall. Dette stopper imidlertid ikke yo

Vultr-objektlagring

Vultr-objektlagring

S3-kompatibel* objektlagring er nå tilgjengelig på Vultr-skyen. Vår objektlagringsteknologi er rimelig, skalerbar og enkel å integrere i deg

Aktiver Windows Audio på en Windows Server-forekomst

Aktiver Windows Audio på en Windows Server-forekomst

Merk: Denne veiledningen vil fungere for Windows 2012 R2 og Windows 2016-forekomster. Windows-servere har som standard ikke Windows Audio-tjenesten aktivert.

Vultr Data Portability Guide

Vultr Data Portability Guide

Hvordan kan jeg laste ned skydataene mine fra Vultr? Dataportabilitet på Vultr-plattformen Vi tilbyr en rekke enkle løsninger som du kan laste ned

Krav for å laste opp en OS ISO til Vultr

Krav for å laste opp en OS ISO til Vultr

Vultr tilbyr et bredt utvalg av operativsystemer å velge mellom. Noen ganger kan det imidlertid være lurt å laste opp ditt eget tilpassede operativsystem ISO som Kal

Hvordan lage omvendte DNS- eller PTR-poster i Vultr-kontrollpanelet

Hvordan lage omvendte DNS- eller PTR-poster i Vultr-kontrollpanelet

Introduksjon til Vultr Reverse DNS For å legge til en PTR, eller Reverse DNS-post for forekomstens IP-adresse, må du følge trinnene som er skissert nedenfor:

Introduksjon til Vultr DNS

Introduksjon til Vultr DNS

Vultr tilbyr gratis DNS-hosting for kunders domener. Navnetjenerne er på et AnyCAST-nettverk og sørger for rask DNS-oppløsning. For å bruke Vultrs DNS må du

Få tilgang til enkeltbrukermodus (Tilbakestill rotpassord)

Få tilgang til enkeltbrukermodus (Tilbakestill rotpassord)

For å tilbakestille root-passordet til serveren din, må du starte opp i enkeltbrukermodus. Få tilgang til serveren din i Vultr-kundeportalen, og følg deretter trinnet

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

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 deg

Overvåkingsløsninger for din VPS

Overvåkingsløsninger for din VPS

I denne artikkelen vil du lære om et utvalg av overvåkingsløsningene som er tilgjengelige for Vultr-serveren din. Avhengig av ditt operativsystemvalg, vil ther

Slik gjenoppretter du et øyeblikksbilde

Slik gjenoppretter du et øyeblikksbilde

Øyeblikksbilder er en effektiv måte å lage en fullstendig sikkerhetskopi av serveren din på. Du vil ikke kunne gjenopprette individuelle filer, men heller hele serveren. Thi

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.

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.

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.

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