Hoe de Vultr Go-bibliotheek te gebruiken om serverinformatie te krijgen

Invoering

De officiële Vultr Go-bibliotheek kan worden gebruikt om te communiceren met de Vultr API . Met de Vultr API kunt u de bronnen beheren die aan uw account zijn gekoppeld, inclusief servers, dns, firewall, snapshots, netwerk en meer. Deze tutorial geeft een introductie tot het gebruik van de officiële Go API-client door een eenvoudige applicatie te maken om informatie over uw servers te krijgen.

Vereisten

  • Een computer met Windows, Linux of macOS waarop Go 1.12+ is geïnstalleerd.
  • Basiskennis programmeren.
  • Optioneel: een IDE die Go ondersteunt (bijvoorbeeld Visual Studio Code, emacs of Atom).

Doelen

  • Om te leren hoe u de officiële Vultr API-bibliotheek gebruikt.
  • Om een ​​programma te schrijven om serverinformatie te bekijken.

Stap 1: Het project maken

Eerst beginnen we met het maken van een nieuwe module (project). Normaal gesproken gebruikt u de URL naar een opslagplaats voor uw code als de modulenaam, maar dat valt buiten het bestek van deze zelfstudie. Voorlopig gebruiken we serverinfo als modulenaam.

Voer de volgende opdrachten uit om het project te maken:

# Create the folder in the current directory.
mkdir serverinfo

# Enter the new folder.
cd serverinfo

# Initialize the module.
go mod init serverinfo

Stap 2: de bibliotheek downloaden

Vervolgens downloaden we de API-bibliotheek van GitHub (een code-hostingsite). Om bibliotheken te downloaden, moet u de go getopdracht gebruiken. Hiermee worden de bibliotheek en de bijbehorende afhankelijkheden automatisch gedownload en toegevoegd aan het bestand go.mod . Voer in dezelfde terminal die u eerder hebt geopend de volgende opdracht in:

go get github.com/vultr/govultr

Stap 3: uw API-sleutel ophalen

Om de API-client te gebruiken, hebt u uw API-sleutel nodig. U kunt uw API-sleutel ophalen via het API- tabblad van het Account- gedeelte van uw Dashboard . U moet ook uw IP-adres autoriseren om de API-sleutel te gebruiken. U kunt uw IP-adres vinden door naar ifconfig.me te gaan . Merk op dat u op zoek bent naar uw openbare IP, niet uw privé-IP. Uw privé-IP is wat u zou vinden in uw netwerkinstellingen op uw computer en bevindt zich in een van de volgende CIDR-bereiken: 10.0.0.0/8 , 172.16.0.0/12 of 192.168.0.0/16 .

Zodra u uw IP-adres heeft, voegt u het toe onder het gedeelte Toegangscontrole . In het vak na / Typ 32. /32is een netmask betekenis 255.255.255.255. Dit betekent dat alleen uw IP in het assortiment zit.

Waarschuwing: bescherm uw API-sleutel zoals u uw wachtwoord zou beschermen. De API-sleutel heeft toegang tot uw volledige account, inclusief facturering, servers en opslag.

Stap 4: het programmabestand maken

Nu gaan we aan het programma werken. Open de map die we hebben gemaakt in de editor van uw keuze en maak een bestand met de naam main.go.

Typ of kopieer in het bestand de volgende code:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/vultr/govultr"
)

func main() {

}

Het package mainvertelt Go dat we een commando maken, geen bibliotheek. De importverklaring verklaart de afhankelijkheden die we zullen gebruiken. func main()is de functie die wordt aangeroepen wanneer we ons programma uitvoeren.

Stap 5: De API-client initialiseren

De volgende stap is het initialiseren van de API-client. Om dit te doen, moeten we de functie govultr.NewClient (http.Client, string) gebruiken . Voeg de volgende code toe binnen de main () functie:

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

Vervang YOURAPIKEYdoor de API-sleutel die u eerder hebt opgehaald.

Laten we deze code wat nader bekijken. Aan de linkerkant van de :=hebben we client. Dat is de naam van een variabele . Een variabele slaat waarden op. Aan de rechterkant hebben we een functieaanroep naar govultr.NewClient . De eerste parameter is nul, omdat we de standaard HTTP-client niet hoeven te wijzigen. De tweede parameter is de API-sleutel die we gebruiken om onszelf te verifiëren. De :=operator wijst de rechterkant toe aan de linkerkant, in dit geval het resultaat van de functieaanroep naar client.

Stap 6: De API gebruiken

Ons programma doet nog niets. Om het nuttig te maken, gaan we informatie over onze servers ophalen bij Vultr. We zullen de functie govultr.Client.Server.List (context.Context) ([] govultr.Server, error) gebruiken . Voeg de volgende code toe aan het einde van de functie main () :

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

In deze code roepen we de API-functie op om de serverinformatie op te halen. Maak je nog geen zorgen over de betekenis van de context , want dat is een geavanceerder onderwerp. Voorlopig hoeven we alleen maar te weten dat de context bepaalt hoe de API-client wordt uitgevoerd. context.Background () retourneert een lege context . Nadat we de serverinformatie hebben opgehaald in de twee variabelen, servers en err , controleren we of er een fout is opgetreden. Zo ja, dan informeren we de gebruiker over de fout en sluiten af ​​met code 1 (fout).

Stap 7: de informatie weergeven

Nu we hebben een scala van servers in de servers variabele ( [] govultr.Server ), kunnen we eigenlijk weer te geven. Voeg de volgende code toe aan het einde van de functie main () :

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

Ten eerste is een afdruk (display) een header, Servers:. Dan hebben we lus over de servers matrix, het negeren van de index van toe te wijzen aan _, en het toewijzen van de huidige server naar server variabele. Binnen de lus geven we het label, IP-adres, locatie, lopende kosten, huidige bandbreedte en toegestane bandbreedte van de server weer. Om dit efficiënt te doen, gebruiken we format strings , de string die eruit ziet " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Het %s middel om de volgende tekenreeks te vervangen, terwijl het %.2fmiddel om de volgende float (decimaal getal) af te drukken, afgerond op 2 decimalen. De rest van de opmaakreeks wordt letterlijk afgedrukt (zoals deze is).

Stap 8: Running

Op dit moment zou uw code er als volgt uit moeten zien:

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

We kunnen nu de code uitvoeren. Keer terug naar de terminal die we eerder hebben geopend en voer de opdracht in go run. De uitvoer ziet er als volgt uit:

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

Als u een foutmelding krijgt, controleer dan of uw API-sleutel en IP-adres correct zijn.

Gevolgtrekking

Op dit punt heb je de basis van het gebruik van de officiële API-client met succes geleerd en een programma geschreven dat informatie over de servers in je account weergeeft.

Verdere stappen

Vanaf hier kunt u veel meer doen. U kunt bijvoorbeeld een programma schrijven om een ​​nieuwe server in te richten als u weinig geheugen heeft. Je zou een app kunnen schrijven om je server automatisch te upgraden als je weinig bandbreedte of opslagruimte hebt. U kunt zelfs een tool schrijven om DNS-records automatisch bij te werken op basis van uw huidige IP.

Voor meer informatie over de govultr-bibliotheek kunt u de govultr-bibliotheekdocumentatie op godoc vinden .

govultr is een open-sourceproject . Als je bugs tegenkomt in govultr, kun je ze melden op GitHub . U kunt ook rechtstreeks aan de code bijdragen door een pull-aanvraag in te dienen .



Leave a Comment

Toegang krijgen tot uw Vultr VPS

Toegang krijgen tot uw Vultr VPS

Vultr biedt verschillende manieren om toegang te krijgen tot je VPS om te configureren, installeren en gebruiken. Toegangsgegevens De standaard toegangsgegevens voor uw VPS-ar

Vultr Data Portability Guide

Vultr Data Portability Guide

Hoe kan ik mijn cloudgegevens downloaden van Vultr? Gegevensoverdraagbaarheid op het Vultr-platform We bieden een aantal eenvoudige oplossingen om u te downloaden

Aangepaste ISO op kaal metaal

Aangepaste ISO op kaal metaal

Inleiding Vultr heeft momenteel geen systeem om aangepaste ISOs te uploaden en op blank metaal te monteren. Dit houdt echter niet op

Tijd corrigeren op Windows Server

Tijd corrigeren op Windows Server

Standaard is de systeemtijd van een Vultr VPS met Windows Server 2012 ingesteld op de UTC-tijdzone. U kunt de tijdzone naar wens wijzigen, maar t veranderen

Ubuntu 16-updates automatiseren met Vultr-opstartscripts

Ubuntu 16-updates automatiseren met Vultr-opstartscripts

Ubuntu 16 en nieuwer voert periodieke taken uit die verband houden met apt (zoals het bijwerken van de pakketlijst en het toepassen van onbewaakte upgrades) met behulp van een systemd-timer. Thi

Aan de slag met Cloud-Init

Aan de slag met Cloud-Init

Cloud-init is een open source-project dat compatibel is met de meeste Linux-distributies. Bij Vultr-instanties die vóór 2017 waren gemaakt, was deze software standaard geïnstalleerd. Th

Voorbeeld van autorisatiebrief voor BGP-aankondigingen

Voorbeeld van autorisatiebrief voor BGP-aankondigingen

Gebruik de volgende sjabloon wanneer u autorisatie aanvraagt ​​voor BGP-aankondigingen. MACHTIGINGSBRIEF [DATUM] Aan wie het zich kan bezighouden, Thi

Hoe omgekeerde DNS- of PTR-records te maken in het Vultr-configuratiescherm

Hoe omgekeerde DNS- of PTR-records te maken in het Vultr-configuratiescherm

Inleiding tot Vultr Reverse DNS Om een ​​PTR of Reverse DNS-record toe te voegen voor het IP-adres van uw instantie, moet u de onderstaande stappen volgen:

Installeer Nginx + PHP FPM + Caching + MySQL op Ubuntu 12.04

Installeer Nginx + PHP FPM + Caching + MySQL op Ubuntu 12.04

Waarschijnlijk gaan veel mensen hun Vultr VPSen gebruiken als webservers, een goede keuze zou Nginx zijn als webserver. In dit onderwerp ga ik o beschrijven

Vultr Block Storage

Vultr Block Storage

Met Vultrs Cloud Block Storage-technologie kunt u hoogwaardige, schaalbare opslag aan uw instantie koppelen, waardoor het ruimtebeheer aanzienlijk beter wordt

CoreOS draaien op een Vultr VPS

CoreOS draaien op een Vultr VPS

Lees alstublieft: Vultr biedt nu CoreOS aan op de bestelpagina - Deze gids legt uit hoe u CoreOS handmatig kunt instellen. Deze instructies helpen u bij het hardlopen

Eenmalig inloggen

Eenmalig inloggen

Uw zakelijke inlogsysteem kan worden geïntegreerd met het accountsysteem van Vultrs met behulp van de Single Sign-On (SSO) -functie. SSO helpt bij het vereenvoudigen van wachtwoordbeheer

Voeg een secundair IPv4-adres toe aan je VPS

Voeg een secundair IPv4-adres toe aan je VPS

Deze tutorial legt uit hoe je een extra IPv4-adres instelt op je Vultr VPS. We gaan uit van het volgende: Het belangrijkste IP-adres van je VPS is 1.2.3.4.

RPKI

RPKI

RPKI (Resource Public Key Infrastructure) is een manier om BGP-kaping te voorkomen. Het gebruikt cryptografische handtekeningen om te valideren dat een ASN is toegestaan ​​t

Schakel Windows Audio in op een Windows Server-exemplaar

Schakel Windows Audio in op een Windows Server-exemplaar

Opmerking: deze handleiding werkt voor instanties van Windows 2012 R2 en Windows 2016. Windows-servers hebben standaard niet de Windows-audioservice ingeschakeld.

Inleiding tot Vultr DNS

Inleiding tot Vultr DNS

Vultr biedt gratis DNS-hosting voor klantendomeinen. De naamservers bevinden zich op een AnyCAST-netwerk en zorgen voor een snelle DNS-resolutie. Om Vultrs DNS te gebruiken, zou je

Een virtuele server klonen met Vultr

Een virtuele server klonen met Vultr

Soms moet u een virtuele server klonen voor schaaldoeleinden of om bijvoorbeeld de regio van de server te wijzigen. Op Vultr is dit gemakkelijk, een

Windows Custom ISO met VirtIO-stuurprogrammas

Windows Custom ISO met VirtIO-stuurprogrammas

De Windows ISO bouwen (alleen serverversies) Download de nieuwste binaire VirtIO-stuurprogrammas voor Windows, verpakt als een ISO-bestand, v

Vereisten voor het uploaden van een OS ISO naar Vultr

Vereisten voor het uploaden van een OS ISO naar Vultr

Vultr biedt een breed scala aan besturingssystemen om uit te kiezen. Soms wilt u misschien uw eigen aangepaste besturingssysteem ISO uploaden, zoals Kal

Monitoringoplossingen voor uw VPS

Monitoringoplossingen voor uw VPS

In dit artikel leert u over een selectie van de monitoringoplossingen die beschikbaar zijn voor uw Vultr-server. Afhankelijk van de keuze van uw besturingssysteem, ther

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.