Cara Menggunakan Perpustakaan Vultr Go Untuk Mendapatkan Info Server

pengantar

Perpustakaan Vultr Go resmi dapat digunakan untuk berinteraksi dengan Vultr API . API Vultr memungkinkan Anda untuk mengontrol sumber daya yang terkait dengan akun Anda, termasuk server, dns, firewall, snapshot, jaringan, dan banyak lagi. Tutorial ini akan memberikan pengantar untuk menggunakan klien Go API resmi dengan membuat aplikasi sederhana untuk mendapatkan informasi tentang server Anda.

Prasyarat

  • Komputer yang menjalankan Windows, Linux, atau macOS dengan Go 1.12+ terinstal.
  • Pengetahuan pemrograman dasar.
  • Opsional: IDE yang mendukung Go (misalnya Visual Studio Code, emacs, atau Atom).

Tujuan

  • Untuk mempelajari cara menggunakan perpustakaan API Vultr resmi.
  • Untuk menulis program untuk melihat informasi server.

Langkah 1: Membuat proyek

Pertama, kita akan mulai dengan membuat modul (proyek) baru. Biasanya, Anda akan menggunakan URL ke repositori untuk kode Anda sebagai nama modul, tapi itu di luar cakupan tutorial ini. Untuk saat ini, kami akan menggunakan serverinfo sebagai nama modul.

Untuk membuat proyek, jalankan perintah berikut:

# Create the folder in the current directory.
mkdir serverinfo

# Enter the new folder.
cd serverinfo

# Initialize the module.
go mod init serverinfo

Langkah 2: Mengunduh perpustakaan

Selanjutnya, kita akan mengunduh pustaka API dari GitHub (situs hosting kode). Untuk mengunduh perpustakaan, Anda perlu menggunakan go getperintah. Ini akan secara otomatis mengunduh perpustakaan dan dependensinya sambil menambahkannya ke file go.mod . Di terminal yang sama dengan yang Anda buka sebelumnya, masukkan perintah berikut:

go get github.com/vultr/govultr

Langkah 3: Mendapatkan kunci API Anda

Untuk menggunakan klien API, Anda perlu kunci API Anda. Anda dapat mengambil kunci API Anda dari tab API bagian Akun di Dasbor Anda . Anda juga perlu mengesahkan alamat IP Anda untuk menggunakan kunci API. Anda dapat menemukan alamat IP Anda dengan membuka ifconfig.me . Perhatikan bahwa Anda mencari IP publik Anda , bukan IP pribadi Anda. IP pribadi Anda adalah apa yang akan Anda temukan dalam pengaturan jaringan di komputer Anda, dan berada dalam salah satu rentang CIDR berikut: 10.0.0.0/8 , 172.16.0.0/12 , atau 192.168.0.0/16 .

Setelah Anda memiliki alamat IP Anda, tambahkan di bawah bagian Access Control . Dalam kotak setelah / , ketik 32. /32adalah arti netmask 255.255.255.255. Ini berarti bahwa hanya IP Anda yang termasuk dalam kisaran tersebut.

Peringatan: Lindungi kunci API Anda seperti Anda akan melindungi kata sandi Anda. Kunci API memiliki akses ke seluruh akun Anda, termasuk penagihan, server, dan penyimpanan.

Langkah 4: Membuat file program

Sekarang, kita akan mulai mengerjakan program. Buka folder yang kami buat di editor pilihan Anda, dan buat file bernama main.go.

Di dalam file, ketik atau salin-tempel kode berikut:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/vultr/govultr"
)

func main() {

}

The package mainmemberitahu Go bahwa kita sedang membuat perintah, bukan perpustakaan. Pernyataan impor menyatakan dependensi yang akan kita gunakan. func main()adalah fungsi yang dipanggil ketika kita menjalankan program kita.

Langkah 5: Inisialisasi klien API

Langkah selanjutnya adalah menginisialisasi klien API. Untuk melakukan ini, kita perlu menggunakan fungsi govultr.NewClient (http.Client, string) . Tambahkan kode berikut di dalam fungsi main () :

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

Ganti YOURAPIKEYdengan kunci API yang Anda ambil sebelumnya.

Mari kita lihat kode ini sedikit lebih dekat. Di sisi kiri :=, kita miliki client. Itu adalah nama variabel . Variabel menyimpan nilai. Di sisi kanan, kami memiliki panggilan fungsi ke govultr.NewClient . Parameter pertama adalah nil, karena kita tidak perlu mengubah klien HTTP default. Parameter kedua adalah kunci API yang kami gunakan untuk mengotentikasi diri kami. The :=Operator memberikan hak-sisi ke sisi kiri, dalam hal ini, hasil dari fungsi panggilan untuk client.

Langkah 6: Menggunakan API

Program kami masih belum melakukan apa pun. Untuk membuatnya berguna, kami akan mengambil informasi tentang server kami dari Vultr. Kami akan menggunakan fungsi govultr.Client.Server.List (context.Context) ([] govultr.Server, error) . Tambahkan kode berikut di akhir fungsi utama () :

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

Dalam kode ini, kami memanggil fungsi API untuk mengambil informasi server. Jangan khawatir tentang makna konteksnya , karena itu adalah topik yang lebih maju. Untuk saat ini, yang perlu kita ketahui adalah bahwa konteks mengontrol bagaimana klien API berjalan. context.Background () mengembalikan konteks kosong . Setelah kami mengambil informasi server ke dalam dua variabel, server dan err , kami memeriksa apakah ada kesalahan. Jika demikian, kami beri tahu pengguna kesalahan dan keluar dengan kode 1 (kesalahan).

Langkah 7: Menampilkan informasi

Sekarang kita memiliki array server dalam variabel server ( [] govultr.Server ), kita sebenarnya dapat menampilkannya. Tambahkan kode berikut di akhir fungsi utama () :

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

Pertama, kami mencetak (menampilkan) sebuah header Servers:,. Kemudian, kita lewati array server , mengabaikan indeks dengan menetapkannya _, dan menetapkan server saat ini ke variabel server . Di dalam loop, kami menampilkan label server, alamat IP, lokasi, biaya yang tertunda, bandwidth saat ini, dan bandwidth yang diperbolehkan. Untuk melakukan ini secara efisien, kami menggunakan format string , string yang terlihat seperti " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". The %s sarana untuk menggantikan string berikutnya, sedangkan %.2fsarana untuk mencetak mengapung berikutnya (angka desimal) dibulatkan ke 2 desimal. Sisa dari format string dicetak secara literal (sebagaimana adanya).

Langkah 8: Berlari

Pada titik ini, kode Anda akan terlihat seperti berikut:

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

Kami sekarang dapat menjalankan kode. Kembali ke terminal yang kita buka sebelumnya dan masukkan perintah go run. Outputnya akan menyerupai berikut ini:

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

Jika Anda menerima kesalahan, pastikan kunci API dan alamat IP Anda sudah benar.

Kesimpulan

Pada titik ini, Anda akan berhasil mempelajari dasar-dasar cara menggunakan klien API resmi dan menulis program yang akan menampilkan informasi tentang server di akun Anda.

Langkah selanjutnya

Dari sini, Anda dapat melakukan lebih banyak lagi. Misalnya, Anda dapat menulis sebuah program untuk menyediakan server baru saat Anda kehabisan memori. Anda dapat menulis aplikasi untuk meningkatkan server secara otomatis saat bandwidth atau penyimpanannya rendah. Anda bahkan dapat menulis alat untuk memperbarui data DNS secara otomatis berdasarkan IP Anda saat ini.

Untuk informasi lebih lanjut tentang perpustakaan govultr, Anda dapat menemukan dokumentasi perpustakaan govultr di godoc .

govultr adalah proyek sumber terbuka . Jika Anda menemukan bug di govultr, Anda dapat melaporkannya di GitHub . Anda juga dapat berkontribusi pada kode secara langsung dengan mengirimkan permintaan tarik .

Tinggalkan Komentar

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04

Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.