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
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.
Î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
Î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
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.
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.
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.
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).
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).
Î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.
Î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.
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 .
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
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”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
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.
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 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?
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!
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.
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