Hur man använder Vultr Go-biblioteket för att få serverinformation

Introduktion

Det officiella Vultr Go-biblioteket kan användas för att interagera med Vultr API . Vultr API låter dig kontrollera resurserna som är kopplade till ditt konto, inklusive servrar, dns, brandvägg, ögonblicksbilder, nätverk och mer. Denna handledning kommer att ge en introduktion till att använda den officiella Go API-klienten genom att skapa en enkel applikation för att få information om dina servrar.

Förutsättningar

  • En dator som kör Windows, Linux eller macOS med Go 1.12+ installerat.
  • Grundläggande programmeringskunskaper.
  • Valfritt: En IDE som stöder Go (till exempel Visual Studio Code, emacs eller Atom).

Mål

  • För att lära dig hur du använder det officiella Vultr API-biblioteket.
  • Att skriva ett program för att se serverinformation.

Steg 1: Skapa projektet

Först börjar vi med att skapa en ny modul (projekt). Vanligtvis skulle du använda URL:en till ett arkiv för din kod som modulnamn, men det ligger utanför den här handledningen. För närvarande kommer vi att använda serverinfo som modulnamn .

För att skapa projektet, kör följande kommandon:

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

Steg 2: Ladda ner biblioteket

Därefter kommer vi att ladda ner API-biblioteket från GitHub (en kodvärdwebbplats). För att ladda ner bibliotek måste du använda go getkommandot. Detta kommer automatiskt att ladda ner biblioteket och dess beroenden samtidigt som det läggs till i go.mod- filen. I samma terminal som du öppnade tidigare, skriv in följande kommando:

go get github.com/vultr/govultr

Steg 3: Hämta din API-nyckel

För att använda API-klienten behöver du din API-nyckel. Du kan hämta din API-nyckel från API- fliken i avsnittet Konto på din Dashboard . Du måste också auktorisera din IP-adress för att använda API-nyckeln. Du kan hitta din IP-adress genom att gå till ifconfig.me . Observera att du letar efter din offentliga IP, inte din privata. Din privata IP är vad du skulle hitta i dina nätverksinställningar på din dator, och är inom ett av följande CIDR-intervall: 10.0.0.0/8 , 172.16.0.0/12 eller 192.168.0.0/16 .

När du har din IP-adress, lägga den under Access Control avsnittet. I rutan efter / skriver du 32. /32är en nätmask betydelse 255.255.255.255. Det betyder att endast din IP ingår i sortimentet.

Varning: Skydda din API-nyckel som du skulle skydda ditt lösenord. API-nyckeln har åtkomst till hela ditt konto, inklusive fakturering, servrar och lagring.

Steg 4: Skapa programfilen

Nu ska vi börja arbeta med programmet. Öppna mappen vi skapade i ditt val av redigerare och skapa en fil med namnet main.go.

Inuti filen, skriv eller kopiera och klistra in följande kod:

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

Den package mainsäger till Go att vi skapar ett kommando, inte ett bibliotek. Importsatsen deklarerar de beroenden vi kommer att använda. func main()kallas funktionen när vi kör vårt program.

Steg 5: Initiera API-klienten

Nästa steg är att initiera API-klienten. För att göra detta måste vi använda funktionen govultr.NewClient(http.Client, string) . Lägg till följande kod i main()- funktionen:

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

Ersätt YOURAPIKEYmed API-nyckeln du hämtade tidigare.

Låt oss titta på den här koden lite närmare. På vänster sida av :=, har vi client. Det är namnet på en variabel . En variabel lagrar värden. På höger sida har vi ett funktionsanrop till govultr.NewClient . Den första parametern är noll, eftersom vi inte behöver ändra standard HTTP-klienten. Den andra parametern är API-nyckeln vi använder för att autentisera oss. Den :=operatör tilldelar den högra sidan till den vänstra sidan, i detta fall, resultatet av funktionsanrop till client.

Steg 6: Använda API

Vårt program gör fortfarande ingenting. För att göra det användbart kommer vi att hämta information om våra servrar från Vultr. Vi kommer att använda funktionen govultr.Client.Server.List(context.Context) ([]govultr.Server, error) . Lägg till följande kod i slutet av main()- funktionen:

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

I den här koden anropar vi API-funktionen för att hämta serverinformationen. Oroa dig inte för innebörden av sammanhanget ännu, eftersom det är ett mer avancerat ämne. För nu är allt vi behöver veta att sammanhanget styr hur API-klienten körs. context.Background() returnerar en tom kontext . Efter att vi har hämtat serverinformationen till de två variablerna, servrar och err , kontrollerar vi om det var ett fel. Om så är fallet, informerar vi användaren om felet och avslutar med kod 1 (fel).

Steg 7: Visar informationen

Nu när vi har en uppsättning servrar i servervariabeln ( []govultr.Server ), kan vi faktiskt visa den. Lägg till följande kod i slutet av 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 skriver vi ut (visar) en rubrik, Servers:. Sedan vi slinga över servrar array, ignorera index koppla den till _och tilldela den aktuella servern till servern variabeln. Inne i slingan visar vi serverns etikett, IP-adress, plats, utestående avgifter, aktuell bandbredd och tillåten bandbredd. För att göra detta effektivt använder vi formatsträngar , strängen som ser ut som " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". De %smedel för att ersätta nästa sträng, medan %.2fmedel för att skriva ut nästa flottör (decimaltal) avrundat till 2 decimaler. Resten av formatsträngen skrivs ut bokstavligen (i befintligt skick).

Steg 8: Löpning

Vid det här laget bör din kod se ut så här:

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öra koden. Gå tillbaka till terminalen vi öppnade tidigare och ange kommandot go run. Utgången kommer att likna följande:

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

Om du får ett fel, se till att din API-nyckel och IP-adress är korrekta.

Slutsats

Vid det här laget har du framgångsrikt lärt dig grunderna i hur du använder den officiella API-klienten och skrivit ett program som visar information om servrarna på ditt konto.

Ytterligare steg

Härifrån kan du göra mycket mer. Du kan till exempel skriva ett program för att tillhandahålla en ny server när du har ont om minne. Du kan skriva en app för att automatiskt uppgradera din server när du har ont om bandbredd eller lagringsutrymme. Du kan till och med skriva ett verktyg för att automatiskt uppdatera DNS-poster baserat på din nuvarande IP.

För mer information om govultr-biblioteket kan du hitta govultr-bibliotekets dokumentation på godoc .

govultr är ett projekt med öppen källkod . Om du hittar några buggar i govultr kan du rapportera dem på GitHub . Du kan också bidra till koden direkt genom att skicka in en pull-förfrågan .


Fästa blocklagring

Fästa blocklagring

Blocklagringsvolymer kopplas till instanser som ytterligare diskar. Du måste koppla volymen till en instans innan den kan användas. Flera volymer kan b

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Vilka portar är blockerade?

Vilka portar är blockerade?

Vi blockerar flera utgående portar för nätverkssäkerhet. Blockerad som standard Du kan begära att dessa blockeringar tas bort genom att öppna ett supportärende. TCP-port 2

Windows anpassad ISO med VirtIO-drivrutiner

Windows anpassad ISO med VirtIO-drivrutiner

Bygga Windows ISO (endast serverversioner) Skaffa de senaste binära VirtIO-drivrutinerna för Windows, paketerade som en ISO-fil, från

Windows Server 2016 Återställningsläge

Windows Server 2016 Återställningsläge

När du kommer åt återställningsläget på Windows Server 2016 kan du uppleva ett stoppfel (blå skärm). Lösningen är att komma åt alternativet Reparera dator

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

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

Förmodligen kommer många människor att använda sina Vultr VPS:er som webbservrar, ett bra val skulle vara Nginx som webbserver. I det här ämnet ska jag beskriva o

Vultr Block Storage

Vultr Block Storage

Vultrs Cloud Block Storage-teknik låter dig montera skalbar lagring med hög prestanda till din instans, vilket gör rymdhanteringen betydligt mer

Hur du kommer åt din Vultr VPS

Hur du kommer åt din Vultr VPS

Vultr tillhandahåller flera olika sätt att komma åt din VPS för att konfigurera, installera och använda. Åtkomstuppgifter Standardinloggningsuppgifterna för din VPS ar

Hur ändrar jag storlek på min VPS-disk?

Hur ändrar jag storlek på min VPS-disk?

Den här guiden förklarar hur man ändrar storlek på hårddisken på en Vultr VPS. Om du nyligen har uppgraderat din plan till en plan med en större disk, kan du följa dessa

Anpassad ISO på Bare Metal

Anpassad ISO på Bare Metal

Inledning Vultr har för närvarande inget system på plats för att tillåta anpassade ISO:er att laddas upp och monteras på ren metall. Detta stoppar dock inte yo

Ubuntu 16.04 Bilder Rapportera fel om EC2 Metadata Service

Ubuntu 16.04 Bilder Rapportera fel om EC2 Metadata Service

Vid uppstart kan vissa äldre Ubuntu 16.04-instanser visa följande varning: ************************************ ****************************************

Vultr Object Storage

Vultr Object Storage

S3-kompatibel* objektlagring är nu tillgänglig på Vultr-molnet. Vår objektlagringsteknik är prisvärd, skalbar och lätt att integrera i dig

Aktivera Windows Audio på en Windows Server-instans

Aktivera Windows Audio på en Windows Server-instans

Obs: Den här guiden fungerar för Windows 2012 R2 och Windows 2016-instanser. Windows-servrar har som standard inte Windows Audio-tjänsten aktiverad.

Exempel på auktoriseringsbrev för BGP-meddelanden

Exempel på auktoriseringsbrev för BGP-meddelanden

Använd följande mall när du begär auktorisering för BGP-meddelanden. AUKTORISERINGSBREV [DATUM] Till vem det kan beröra, Thi

Krav för att ladda upp ett OS ISO till Vultr

Krav för att ladda upp ett OS ISO till Vultr

Vultr erbjuder ett brett utbud av operativsystem att välja mellan. Ibland kanske du vill ladda upp ditt eget anpassade operativsystem ISO som Kal

Hur man skapar omvända DNS- eller PTR-poster i Vultr-kontrollpanelen

Hur man skapar omvända DNS- eller PTR-poster i Vultr-kontrollpanelen

Introduktion till Vultr Reverse DNS För att lägga till en PTR, eller Reverse DNS-post för din instans IP-adress, måste du följa stegen nedan:

Introduktion till Vultr DNS

Introduktion till Vultr DNS

Vultr erbjuder gratis DNS-värd för kunders domäner. Namnservrarna finns på ett AnyCAST-nätverk och säkerställer snabb DNS-upplösning. För att använda Vultrs DNS måste du

Få åtkomst till läge för en användare (Återställ rotlösenord)

Få åtkomst till läge för en användare (Återställ rotlösenord)

För att återställa root-lösenordet för din server måste du starta upp i enanvändarläge. Gå till din server i Vultr kundportal och följ sedan steget

Flera privata nätverk

Flera privata nätverk

Vultr introducerade stöd för flera privata nätverk i början av 2018. Denna funktion erbjuds som en förbättring av det vanliga privata nätverket. Whe

Hur man använder Vultr Go-biblioteket för att få serverinformation

Hur man använder Vultr Go-biblioteket för att få serverinformation

Inledning Det officiella Vultr Go-biblioteket kan användas för att interagera med Vultr API. Vultr API låter dig kontrollera resurserna som är kopplade till dig

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer