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 .

Lasă un comentariu

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

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.

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.

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.

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.

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?

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