Εισαγωγή
Η επίσημη βιβλιοθήκη Vultr Go μπορεί να χρησιμοποιηθεί για αλληλεπίδραση με το Vultr API . Το Vultr API σάς επιτρέπει να ελέγχετε τους πόρους που σχετίζονται με τον λογαριασμό σας, συμπεριλαμβανομένων διακομιστών, dns, τείχους προστασίας, στιγμιότυπων, δικτύου και άλλων. Αυτό το σεμινάριο θα δώσει μια εισαγωγή στη χρήση του επίσημου προγράμματος-πελάτη Go API, δημιουργώντας μια απλή εφαρμογή για τη λήψη πληροφοριών σχετικά με τους διακομιστές σας.
Προαπαιτούμενα
- Ένας υπολογιστής με Windows, Linux ή macOS με εγκατεστημένο το Go 1.12+.
- Βασικές γνώσεις προγραμματισμού.
- Προαιρετικό: Ένα IDE που υποστηρίζει το Go (για παράδειγμα Visual Studio Code, emacs ή Atom).
Στόχοι
- Για να μάθετε πώς να χρησιμοποιείτε την επίσημη βιβλιοθήκη API Vultr.
- Για να γράψετε ένα πρόγραμμα για την προβολή πληροφοριών διακομιστή.
Βήμα 1: Δημιουργία του έργου
Αρχικά, θα ξεκινήσουμε δημιουργώντας μια νέα ενότητα (έργο). Συνήθως, θα χρησιμοποιούσατε τη διεύθυνση URL ενός αποθετηρίου για τον κώδικά σας ως όνομα της ενότητας, αλλά αυτό είναι πέρα από το πεδίο αυτού του σεμιναρίου. Προς το παρόν, θα χρησιμοποιήσουμε το serverinfo ως όνομα της μονάδας.
Για να δημιουργήσετε το έργο, εκτελέστε τις ακόλουθες εντολές:
# Create the folder in the current directory. mkdir serverinfo # Enter the new folder. cd serverinfo # Initialize the module. go mod init serverinfo
Βήμα 2: Λήψη της βιβλιοθήκης
Στη συνέχεια, θα κατεβάσουμε τη βιβλιοθήκη API από το GitHub (ένας ιστότοπος φιλοξενίας κώδικα). Για να κατεβάσετε βιβλιοθήκες, πρέπει να χρησιμοποιήσετε την go getεντολή. Αυτό θα κατεβάσει αυτόματα τη βιβλιοθήκη και τις εξαρτήσεις της ενώ θα την προσθέσει στο αρχείο go.mod . Στο ίδιο τερματικό που ανοίξατε νωρίτερα, πληκτρολογήστε την ακόλουθη εντολή:
go get github.com/vultr/govultr
Βήμα 3: Λήψη του κλειδιού API
Για να χρησιμοποιήσετε το πρόγραμμα-πελάτη API, θα χρειαστείτε το κλειδί API σας. Μπορείτε να ανακτήσετε το κλειδί API από την καρτέλα API της ενότητας Λογαριασμός του Πίνακα ελέγχου σας . Θα χρειαστεί επίσης να εξουσιοδοτήσετε τη διεύθυνση IP σας για να χρησιμοποιήσετε το κλειδί API. Μπορείτε να βρείτε τη διεύθυνση IP σας μεταβαίνοντας στο ifconfig.me . Σημειώστε ότι αναζητάτε τη δημόσια IP σας, όχι την ιδιωτική σας. Η ιδιωτική σας IP είναι αυτή που θα βρείτε στις ρυθμίσεις δικτύου στον υπολογιστή σας και βρίσκεται σε μία από τις ακόλουθες περιοχές CIDR: 10.0.0.0/8 , 172.16.0.0/12 ή 192.168.0.0/16 .
Μόλις αποκτήσετε τη διεύθυνση IP σας, προσθέστε την στην ενότητα Έλεγχος πρόσβασης . Στο πλαίσιο μετά το / , πληκτρολογήστε 32. /32είναι μια μάσκα δικτύου που σημαίνει 255.255.255.255. Αυτό σημαίνει ότι μόνο η IP σας περιλαμβάνεται στην περιοχή.
Προειδοποίηση: Προστατέψτε το κλειδί API όπως θα προστατεύατε τον κωδικό πρόσβασής σας. Το κλειδί API έχει πρόσβαση σε ολόκληρο τον λογαριασμό σας, συμπεριλαμβανομένης της χρέωσης, των διακομιστών και του αποθηκευτικού χώρου.
Βήμα 4: Δημιουργία του αρχείου προγράμματος
Τώρα, θα αρχίσουμε να εργαζόμαστε για το πρόγραμμα. Ανοίξτε τον φάκελο που δημιουργήσαμε στο πρόγραμμα επεξεργασίας της επιλογής σας και δημιουργήστε ένα αρχείο με το όνομα main.go.
Μέσα στο αρχείο, πληκτρολογήστε ή αντιγράψτε-επικολλήστε τον ακόλουθο κώδικα:
package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { }
Το package mainλέει στο Go ότι δημιουργούμε μια εντολή, όχι μια βιβλιοθήκη. Η δήλωση εισαγωγής δηλώνει τις εξαρτήσεις που θα χρησιμοποιήσουμε. func main()είναι η συνάρτηση που καλείται όταν εκτελούμε το πρόγραμμά μας.
Βήμα 5: Εκκίνηση του προγράμματος-πελάτη API
Το επόμενο βήμα είναι η προετοιμασία του προγράμματος-πελάτη API. Για να γίνει αυτό, πρέπει να χρησιμοποιήσουμε τη συνάρτηση govultr.NewClient(http.Client, string) . Προσθέστε τον ακόλουθο κώδικα μέσα στη συνάρτηση main() :
client := govultr.NewClient(nil, "YOURAPIKEY")
Αντικαταστήστε το YOURAPIKEYμε το κλειδί API που ανακτήσατε νωρίτερα.
Ας δούμε αυτόν τον κώδικα λίγο πιο προσεκτικά. Στην αριστερή πλευρά του :=, έχουμε client. Αυτό είναι το όνομα μιας μεταβλητής . Μια μεταβλητή αποθηκεύει τιμές. Στη δεξιά πλευρά, έχουμε μια κλήση συνάρτησης στο govultr.NewClient . Η πρώτη παράμετρος είναι μηδέν, γιατί δεν χρειάζεται να αλλάξουμε τον προεπιλεγμένο πελάτη HTTP. Η δεύτερη παράμετρος είναι το κλειδί API που χρησιμοποιούμε για τον έλεγχο ταυτότητας. Ο :=χειριστής εκχωρεί τη δεξιά πλευρά στην αριστερή πλευρά, σε αυτήν την περίπτωση, το αποτέλεσμα της κλήσης λειτουργίας στο client.
Βήμα 6: Χρήση του API
Το πρόγραμμά μας δεν κάνει ακόμα τίποτα. Για να το κάνουμε χρήσιμο, πρόκειται να ανακτήσουμε πληροφορίες σχετικά με τους διακομιστές μας από το Vultr. Θα χρησιμοποιήσουμε τη συνάρτηση govultr.Client.Server.List(context.Context) ([]govultr.Server, error) . Προσθέστε τον ακόλουθο κώδικα στο τέλος της συνάρτησης main() :
servers, err := client.Server.List(context.Background()) if err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) }
Σε αυτόν τον κώδικα, καλούμε τη συνάρτηση API για να ανακτήσουμε τις πληροφορίες διακομιστή. Μην ανησυχείτε ακόμα για το νόημα του πλαισίου , καθώς αυτό είναι ένα πιο προχωρημένο θέμα. Προς το παρόν, το μόνο που χρειάζεται να γνωρίζουμε είναι ότι το περιβάλλον ελέγχει τον τρόπο εκτέλεσης του προγράμματος-πελάτη API. context.Background() επιστρέφει ένα κενό περιβάλλον . Αφού ανακτήσουμε τις πληροφορίες διακομιστή στις δύο μεταβλητές, servers και err , ελέγχουμε αν υπήρξε σφάλμα. Εάν ναι, ενημερώνουμε τον χρήστη για το σφάλμα και βγαίνουμε με τον κωδικό 1 (σφάλμα).
Βήμα 7: Εμφάνιση των πληροφοριών
Τώρα που έχουμε μια σειρά διακομιστών στη μεταβλητή servers ( []govultr.Server ), μπορούμε πραγματικά να την εμφανίσουμε. Προσθέστε τον ακόλουθο κώδικα στο τέλος της συνάρτησης 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, ) }
Αρχικά, εκτυπώνουμε (εμφανίζουμε) μια κεφαλίδα, Servers:. Στη συνέχεια, κάνουμε βρόχο πάνω από τον πίνακα διακομιστών , αγνοώντας το ευρετήριο εκχωρώντας το στο _, και εκχωρώντας τον τρέχοντα διακομιστή στη μεταβλητή διακομιστή . Μέσα στον βρόχο, εμφανίζουμε την ετικέτα του διακομιστή, τη διεύθυνση IP, την τοποθεσία, τις εκκρεμείς χρεώσεις, το τρέχον εύρος ζώνης και το επιτρεπόμενο εύρος ζώνης. Για να το κάνουμε αυτό αποτελεσματικά, χρησιμοποιούμε συμβολοσειρές μορφής , τη συμβολοσειρά που μοιάζει με " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Το %sμέσο για την αντικατάσταση της επόμενης συμβολοσειράς, ενώ το %.2fμέσο για την εκτύπωση του επόμενου float (δεκαδικός αριθμός) στρογγυλοποιείται σε 2 δεκαδικά ψηφία. Η υπόλοιπη συμβολοσειρά μορφοποίησης εκτυπώνεται κυριολεκτικά (ως έχει).
Βήμα 8: Τρέξιμο
Σε αυτό το σημείο, ο κώδικάς σας θα πρέπει να έχει την εξής μορφή:
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, ) } }
Μπορούμε τώρα να εκτελέσουμε τον κώδικα. Επιστρέψτε στο τερματικό που ανοίξαμε νωρίτερα και εισάγετε την εντολή go run. Η έξοδος θα μοιάζει με το εξής:
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
Εάν λάβετε κάποιο σφάλμα, βεβαιωθείτε ότι το κλειδί API και η διεύθυνση IP είναι σωστά.
συμπέρασμα
Σε αυτό το σημείο, θα έχετε μάθει με επιτυχία τα βασικά για τον τρόπο χρήσης του επίσημου προγράμματος-πελάτη API και θα έχετε γράψει ένα πρόγραμμα που θα εμφανίζει πληροφορίες σχετικά με τους διακομιστές στον λογαριασμό σας.
Περαιτέρω βήματα
Από εδώ, μπορείτε να κάνετε πολλά περισσότερα. Για παράδειγμα, θα μπορούσατε να γράψετε ένα πρόγραμμα για την παροχή ενός νέου διακομιστή όταν έχετε χαμηλή μνήμη. Θα μπορούσατε να γράψετε μια εφαρμογή για αυτόματη αναβάθμιση του διακομιστή σας όταν έχετε χαμηλό εύρος ζώνης ή αποθηκευτικό χώρο. Θα μπορούσατε ακόμη να γράψετε ένα εργαλείο για την αυτόματη ενημέρωση των εγγραφών DNS με βάση την τρέχουσα IP σας.
Για περισσότερες πληροφορίες σχετικά με τη βιβλιοθήκη govultr, μπορείτε να βρείτε την τεκμηρίωση της βιβλιοθήκης govultr στο godoc .
Το govultr είναι ένα έργο ανοιχτού κώδικα . Αν βρείτε σφάλματα στο govultr, μπορείτε να τα αναφέρετε στο GitHub . Μπορείτε επίσης να συνεισφέρετε στον κώδικα απευθείας υποβάλλοντας ένα αίτημα έλξης .