Cum să utilizați biblioteca Vultr Go pentru a obține informații despre server

Introducere

Biblioteca oficială Vultr Go poate fi utilizată pentru a interacționa cu API-ul Vultr . API-ul Vultr vă permite să controlați resursele asociate contului dvs., inclusiv servere, dns, firewall, instantanee, rețea și multe altele. Acest tutorial va oferi o introducere în utilizarea clientului oficial API API prin crearea unei aplicații simple pentru a obține informații despre serverele dvs.

Cerințe preliminare

  • Un computer care rulează Windows, Linux sau macOS cu Go 1.12+ instalat.
  • Cunoștințe de bază ale programării.
  • Opțional: un IDE care acceptă Go (de exemplu, Visual Studio Code, emacs sau Atom).

Obiective

  • Pentru a afla cum să utilizați biblioteca oficială API Vultr.
  • Pentru a scrie un program pentru a vizualiza informațiile despre server.

Pasul 1: Crearea proiectului

În primul rând, vom începe prin crearea unui nou modul (proiect). De obicei, utilizați adresa URL a unui depozit pentru codul dvs. ca nume de modul, dar acest lucru nu depășește domeniul de aplicare al acestui tutorial. Deocamdată, vom folosi serverinfo ca nume al modulului.

Pentru a crea proiectul, executați următoarele comenzi:

# Create the folder in the current directory.
mkdir serverinfo

# Enter the new folder.
cd serverinfo

# Initialize the module.
go mod init serverinfo

Pasul 2: Descărcarea bibliotecii

În continuare, vom descărca biblioteca API de la GitHub (un site de găzduire de cod). Pentru a descărca bibliotecile, trebuie să utilizați go getcomanda. Aceasta va descărca automat biblioteca și dependențele sale în timp ce o adăugați la fișierul go.mod . În același terminal pe care l-ați deschis anterior, introduceți următoarea comandă:

go get github.com/vultr/govultr

Pasul 3: Obținerea cheii API

Pentru a utiliza clientul API, veți avea nevoie de cheia API. Puteți prelua cheia API din fila API din secțiunea Cont din tabloul de bord . De asemenea, va trebui să vă autorizați adresa IP pentru a utiliza cheia API. Puteți găsi adresa dvs. IP accesând ifconfig.me . Rețineți că căutați IP-ul dvs. public , nu cel privat. IP-ul dvs. privat este ceea ce veți găsi în setările de rețea de pe computer și se află într-unul dintre următoarele intervale CIDR: 10.0.0.0/8 , 172.16.0.0/12 sau 192.168.0.0/16 .

După ce aveți adresa IP, adăugați-o în secțiunea Control acces . În caseta de după tastați /32 ,. /32este un sens de mască net 255.255.255.255. Aceasta înseamnă că doar IP-ul dvs. este inclus în interval.

Avertisment: protejați-vă cheia API ca și cum v-ați proteja parola. Cheia API are acces la întregul cont, inclusiv facturare, servere și stocare.

Pasul 4: Crearea fișierului de program

Acum, vom începe să lucrăm la program. Deschideți folderul pe care l-am creat în alegerea editorului și creați un fișier numit main.go.

În fișier, tastați sau copiați-lipiți următorul cod:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/vultr/govultr"
)

func main() {

}

package mainTell Go pe care le creăm o comandă, nu o bibliotecă. Declarația de import declară dependențele pe care le vom utiliza. func main()este funcția numită atunci când rulăm programul nostru.

Pasul 5: Inițializarea clientului API

Următorul pas este inițializarea clientului API. Pentru a face acest lucru, trebuie să utilizăm funcția govultr.NewClient (http.Client, string) . Adăugați următorul cod în funcția principală () :

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

Înlocuiți YOURAPIKEYcu cheia API pe care ați recuperat-o anterior.

Să ne uităm la acest cod puțin mai aproape. Pe partea stângă :=, avem client. Acesta este numele unei variabile . O variabilă stochează valori. În partea dreaptă, avem un apel funcțional la govultr.NewClient . Primul parametru este nil, deoarece nu trebuie să schimbăm clientul HTTP implicit. Al doilea parametru este cheia API pe care o folosim pentru a ne autentifica. :=Operatorul atribuie-partea dreapta pe partea stângă, în acest caz, rezultatul apelul funcției client.

Pasul 6: Utilizarea API-ului

Programul nostru încă nu face nimic. Pentru a-l face util, vom prelua informații despre serverele noastre de la Vultr. Vom folosi funcția govultr.Client.Server.List (context.Context) ([] govultr.Server, eroare) . Adăugați următorul cod la sfârșitul funcției principale () :

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

În acest cod, apelăm la funcția API pentru a prelua informațiile serverului. Nu vă faceți griji cu privire la sensul contextului , deoarece acesta este un subiect mai avansat. Deocamdată, tot ce trebuie să știm este că contextul controlează modul în care rulează clientul API. context.Background () returnează un context gol . După ce preluăm informațiile despre server în cele două variabile, servere și eroăm , verificăm dacă a existat o eroare. Dacă da, informăm utilizatorul despre eroare și ieșim cu codul 1 (eroare).

Pasul 7: Afișarea informațiilor

Acum că avem o serie de servere în variabila de servere ( [] govultr.Server ), o putem afișa de fapt. Adăugați următorul cod la sfârșitul funcției principale () :

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

Mai întâi, imprimăm (afișăm) un antet Servers:,. Apoi, facem o buclă peste matricea de servere , ignorând indexul atribuindu-l _și atribuind serverul curent la variabila server . În buclă, afișăm eticheta serverului, adresa IP, locația, taxele în așteptare, lățimea de bandă curentă și lățimea de bandă permisă. Pentru a face acest lucru în mod eficient, folosim șiruri de format , cu șirul care arată " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". La %s mijloc de a substitui următorul șir, în timp ce %.2fmijloacele de a imprima următorul float (număr zecimal) rotunjită la 2 zecimale. Restul șirului de format este tipărit literal (așa cum este).

Pasul 8: Alergare

În acest moment, codul dvs. ar trebui să arate astfel:

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

Acum putem rula codul. Reveniți la terminalul pe care l-am deschis mai devreme și introduceți comanda go run. Rezultatul va fi asemănător cu următoarele:

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

Dacă primiți o eroare, asigurați-vă că cheia API și adresa IP sunt corecte.

Concluzie

În acest moment, veți fi aflat cu succes elementele de bază ale utilizării clientului API oficial și ați scris un program care va afișa informații despre serverele din contul dvs.

Următorii pași

De aici, puteți face mult mai multe. De exemplu, puteți scrie un program pentru a furniza un server nou atunci când aveți o memorie mică. Ați putea scrie o aplicație pentru a vă actualiza automat serverul atunci când sunteți redus pe lățime de bandă sau în stocare. Ai putea chiar să scrii un instrument pentru actualizarea automată a înregistrărilor DNS pe baza IP-ului tău curent.

Pentru mai multe informații despre biblioteca govultr, puteți găsi documentația bibliotecii govultr pe godoc .

govultr este un proiect open-source . Dacă găsiți buguri în govultr, le puteți raporta pe GitHub . De asemenea, puteți contribui direct la cod, trimițând o solicitare de tragere .



Rulează CoreOS pe un Vultr VPS

Rulează CoreOS pe un Vultr VPS

Vă rugăm să citiți: Vultr oferă acum CoreOS pe pagina de comandă - Acest ghid explică modul de configurare a CoreOS manual. Aceste instrucțiuni vă vor parcurge alergarea

Adăugați o adresă IPv4 secundară la VPS

Adăugați o adresă IPv4 secundară la VPS

Acest tutorial explică cum să setați o adresă IPv4 suplimentară pe VPS-ul dvs. Vultr. Vom presupune următoarele: Adresa IP principală a VPS-ului dvs. este 1.2.3.4.

Imagini Ubuntu 16.04 Raportează erori despre Serviciul de metadate EC2

Imagini Ubuntu 16.04 Raportează erori despre Serviciul de metadate EC2

La pornire, unele instanțe Ubuntu 16.04 mai vechi pot afișa următorul avertisment: ************************************ **************************************

Clonarea unui server virtual cu Vultr

Clonarea unui server virtual cu Vultr

Ocazional, va trebui să clonezi un server virtual, fie în scopuri de scalare, fie să schimbi regiunea serverului, de exemplu. Pe Vultr, acest lucru este ușor, a

Disponibilitate ridicată pe Vultr cu IP flotant și BGP

Disponibilitate ridicată pe Vultr cu IP flotant și BGP

Vultr vă permite să combinați două dintre caracteristicile noastre (IP-uri plutitoare și BGP) pentru a obține o disponibilitate ridicată. Configurare Veți avea nevoie de două instanțe în sam

Cum să accesați VPS-ul dvs. Vultr

Cum să accesați VPS-ul dvs. Vultr

Vultr oferă mai multe moduri diferite de accesare a VPS pentru a configura, instala și utiliza. Acredențe de acces Credențialele de acces implicite pentru arcul VPS

Windows personalizat ISO cu drivere VirtIO

Windows personalizat ISO cu drivere VirtIO

Construirea Windows ISO (numai pentru versiunile serverului) Obțineți cele mai recente drivere binare VirtIO pentru Windows, ambalate ca fișier ISO

Exemplu scrisoare de autorizare pentru anunțuri BGP

Exemplu scrisoare de autorizare pentru anunțuri BGP

Vă rugăm să utilizați următorul șablon pentru a solicita autorizarea pentru anunțuri BGP. CARTEA DE AUTORIZARE [DATA] Cui îi poate interesa, Thi

Modulul Vultr WHMCS

Modulul Vultr WHMCS

Notă: Vă rugăm să citiți acest document în întregime înainte de a instala Vultr WHMCS Module Module Information Version: 2.0.0 (Actualizat) Data lansării: 25 iunie 2019

Cum se creează înregistrări DNS sau PTR inversate în panoul de control Vultr

Cum se creează înregistrări DNS sau PTR inversate în panoul de control Vultr

Introducere în Vultr Revers DNS Pentru a adăuga o înregistrare PTR sau inversă DNS pentru adresa IP a instanțelor dvs., trebuie să urmați pașii descriși mai jos:

Configurarea BGP pe Vultr

Configurarea BGP pe Vultr

Funcția Vultrs BGP vă permite să vă aduceți propriul spațiu IP și să îl utilizați în oricare dintre locațiile noastre. Noțiuni introductive Pentru a utiliza BGP, aveți nevoie de: Un Vult implementat

Cum pot genera chei SSH?

Cum pot genera chei SSH?

O cheie SSH vă permite să vă conectați la serverul dvs. fără să aveți nevoie de o parolă. Tastele SSH pot fi adăugate automat pe servere în timpul procesului de instalare.

Activați Windows Audio pe o instanță Windows Server

Activați Windows Audio pe o instanță Windows Server

Notă: Acest ghid va funcționa pentru instanțele Windows 2012 R2 și Windows 2016. În mod implicit, serverele Windows nu au activat serviciul Windows Audio.

Folosind autentificarea cu doi factori pentru a vă conecta la Panoul de control Vultr

Folosind autentificarea cu doi factori pentru a vă conecta la Panoul de control Vultr

Autentificarea cu doi factori, sau 2FA, este o tehnică care adaugă un strat de securitate, necesitând un pas suplimentar de autentificare pentru a vă autentifica. Pentru o securitate puternică

Cerințe pentru încărcarea unui sistem de operare ISO pe Vultr

Cerințe pentru încărcarea unui sistem de operare ISO pe Vultr

Vultr oferă o mare varietate de sisteme de operare din care să alegeți. Uneori, însă, poate doriți să încărcați propriul sistem de operare personalizat ISO, cum ar fi Kal

Modificarea adresei IP de ieșire postfix

Modificarea adresei IP de ieșire postfix

Când un server i-a fost atribuită mai mult de o adresă IP, Postfix selectează aleatoriu o adresă IP pentru e-mailurile de ieșire. Acest comportament implicit Postfix poate fi reluat

Configurarea rețelei private

Configurarea rețelei private

Dacă alocați o rețea privată unei mașini existente (sau implementați propriul sistem de operare), va trebui să configurați adresele IP pe privat

Soluții de monitorizare pentru VPS

Soluții de monitorizare pentru VPS

În acest articol, veți afla despre o selecție a soluțiilor de monitorizare disponibile pentru serverul dvs. Vultr. În funcție de alegerea sistemului dvs. de operare, ther

Raport de incident de securitate Cloudflare

Raport de incident de securitate Cloudflare

Notă importantă de securitate: După cum știți, Vultr utilizează produsul Cloudflares CDN pentru a îmbunătăți viteza site-ului nostru web de pe glob și pentru a proteja

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe