Introducció
La biblioteca oficial de Vultr Go es pot utilitzar per interactuar amb l' API Vultr . L'API Vultr us permet controlar els recursos associats al vostre compte, inclosos servidors, dns, tallafocs, instantànies, xarxa i molt més. Aquest tutorial donarà una introducció a l'ús del client oficial de l'API Go creant una aplicació senzilla per obtenir informació sobre els vostres servidors.
Requisits previs
- Un ordinador amb Windows, Linux o macOS amb Go 1.12+ instal·lat.
- Coneixements bàsics de programació.
- Opcional: un IDE que admet Go (per exemple, Visual Studio Code, emacs o Atom).
Metes
- Per saber com utilitzar la biblioteca oficial de l'API Vultr.
- Per escriure un programa per veure la informació del servidor.
Pas 1: Creació del projecte
En primer lloc, començarem creant un nou mòdul (projecte). Normalment, utilitzareu l'URL d'un dipòsit per al vostre codi com a nom del mòdul, però això està fora de l'abast d'aquest tutorial. De moment, utilitzarem serverinfo com a nom del mòdul.
Per crear el projecte, executeu les ordres següents:
# Create the folder in the current directory. mkdir serverinfo # Enter the new folder. cd serverinfo # Initialize the module. go mod init serverinfo
Pas 2: Descarregar la biblioteca
A continuació, descarregarem la biblioteca d'API de GitHub (un lloc d'allotjament de codi). Per descarregar biblioteques, heu d'utilitzar l' go getordre. Això baixarà automàticament la biblioteca i les seves dependències mentre l'afegiu al fitxer go.mod . Al mateix terminal que vau obrir anteriorment, introduïu l'ordre següent:
go get github.com/vultr/govultr
Pas 3: obteniu la vostra clau API
Per utilitzar el client API, necessitareu la vostra clau API. Podeu recuperar la vostra clau de l' API des de la pestanya API de la secció Compte del vostre tauler . També haureu d'autoritzar la vostra adreça IP per utilitzar la clau API. Podeu trobar la vostra adreça IP anant a ifconfig.me . Tingueu en compte que cerqueu la vostra IP pública , no la privada. La vostra IP privada és la que trobaríeu a la configuració de xarxa de l'ordinador i es troba en un dels intervals CIDR següents: 10.0.0.0/8 , 172.16.0.0/12 o 192.168.0.0/16 .
Un cop tingueu la vostra adreça IP, afegiu-la a la secció Control d'accés . Al quadre després de / , escriviu 32. /32és un significat de màscara de xarxa 255.255.255.255. Això vol dir que només la vostra IP s'inclou a l'interval.
Avís: protegiu la vostra clau de l'API com protegiu la contrasenya. La clau d'API té accés a tot el vostre compte, inclosos la facturació, els servidors i l'emmagatzematge.
Pas 4: Creació del fitxer del programa
Ara, començarem a treballar en el programa. Obriu la carpeta que hem creat a l'editor que trieu i creeu un fitxer anomenat main.go.
Dins del fitxer, escriviu o copieu i enganxeu el codi següent:
package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { }
El package mainGo diu que estem creant una ordre, no una biblioteca. La declaració d'import declara les dependències que farem servir. func main()és la funció que es diu quan executem el nostre programa.
Pas 5: inicialització del client API
El següent pas és inicialitzar el client API. Per fer-ho, hem d'utilitzar la funció govultr.NewClient(http.Client, string) . Afegiu el codi següent dins de la funció main() :
client := govultr.NewClient(nil, "YOURAPIKEY")
Substituïu YOURAPIKEY-la per la clau de l'API que heu recuperat anteriorment.
Mirem aquest codi una mica més de prop. Al costat esquerre del :=, tenim client. Aquest és el nom d'una variable . Una variable emmagatzema valors. Al costat dret, tenim una crida de funció a govultr.NewClient . El primer paràmetre és nul, perquè no necessitem canviar el client HTTP predeterminat. El segon paràmetre és la clau API que estem utilitzant per autenticar-nos. L' :=operador assigna el costat dret al costat esquerre, en aquest cas, el resultat de la trucada de funció a client.
Pas 6: Ús de l'API
El nostre programa encara no fa res. Perquè sigui útil, recuperarem informació sobre els nostres servidors de Vultr. Utilitzarem la funció govultr.Client.Server.List(context.Context) ([]govultr.Server, error) . Afegiu el codi següent al final de la funció main() :
servers, err := client.Server.List(context.Background()) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) }
En aquest codi, cridem a la funció API per recuperar la informació del servidor. No us preocupeu encara pel significat del context , ja que aquest és un tema més avançat. De moment, tot el que hem de saber és que el context controla com s'executa el client API. context.Background() retorna un context buit . Després de recuperar la informació del servidor a les dues variables, servidors i err , comprovem si hi ha hagut un error. Si és així, informem a l'usuari de l'error i sortim amb el codi 1 (error).
Pas 7: mostra la informació
Ara que tenim una matriu de servidors a la variable de servidors ( []govultr.Server ), realment podem mostrar-la. Afegiu el codi següent al final de la funció 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, ) }
Primer, imprimim (mostram) una capçalera, Servers:. A continuació, fem un bucle sobre la matriu de servidors , ignorant l'índex assignant-lo a _, i assignant el servidor actual a la variable del servidor . Dins del bucle, mostrem l'etiqueta del servidor, l'adreça IP, la ubicació, els càrrecs pendents, l'amplada de banda actual i l'amplada de banda permesa. Per fer-ho de manera eficient, utilitzem format strings , la cadena que sembla " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Els %smitjans per substituir la següent cadena, mentre que els %.2fmitjans per imprimir el següent flotant (número decimal) arrodonit a 2 decimals. La resta de la cadena de format s'imprimeix literalment (tal com està).
Pas 8: Córrer
En aquest punt, el vostre codi hauria de ser com el següent:
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, ) } }
Ara podem executar el codi. Torneu al terminal que vam obrir anteriorment i introduïu l'ordre go run. La sortida s'assemblarà a la següent:
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
Si rebeu un error, assegureu-vos que la vostra clau API i l'adreça IP siguin correctes.
Conclusió
En aquest punt, haureu après amb èxit els conceptes bàsics sobre com utilitzar el client API oficial i heu escrit un programa que mostrarà informació sobre els servidors del vostre compte.
Més passos
A partir d'aquí, pots fer molt més. Per exemple, podeu escriure un programa per subministrar un nou servidor quan teniu poca memòria. Podríeu escriure una aplicació per actualitzar automàticament el vostre servidor quan tingueu poca amplada de banda o emmagatzematge. Fins i tot podríeu escriure una eina per actualitzar automàticament els registres DNS en funció de la vostra IP actual.
Per obtenir més informació sobre la biblioteca govultr, podeu trobar la documentació de la biblioteca govultr a godoc .
govultr és un projecte de codi obert . Si trobeu algun error a govultr, podeu informar-ne a GitHub . També podeu contribuir directament al codi enviant una sol·licitud d'extracció .