Sunucu Bilgisi Almak İçin Vultr Go Kitaplığı Nasıl Kullanılır

Giriş

Resmi Vultr Go kütüphanesi , Vultr API'sı ile etkileşim kurmak için kullanılabilir . Vultr API'si, sunucular, dns, güvenlik duvarı, anlık görüntüler, ağ ve daha fazlası dahil olmak üzere hesabınızla ilişkili kaynakları kontrol etmenizi sağlar. Bu eğitimde, sunucularınız hakkında bilgi almak için basit bir uygulama oluşturarak resmi Go API istemcisini kullanma hakkında bir giriş yapılacaktır.

Ön şartlar

  • Go 1.12+ yüklü Windows, Linux veya macOS çalıştıran bir bilgisayar.
  • Temel programlama bilgisi.
  • İsteğe bağlı: Go özelliğini destekleyen bir IDE (örneğin, Visual Studio Code, emacs veya Atom).

Hedefler

  • Resmi Vultr API kitaplığının nasıl kullanılacağını öğrenmek.
  • Sunucu bilgilerini görüntülemek üzere bir program yazmak için.

1. Adım: Projeyi oluşturma

İlk olarak, yeni bir modül (proje) oluşturarak başlayacağız. Genellikle, kodun bir havuzunun URL'sini modül adı olarak kullanırsınız, ancak bu öğreticinin kapsamı dışındadır. Şimdilik , modül adı olarak serverinfo kullanacağız .

Projeyi oluşturmak için aşağıdaki komutları çalıştırın:

# Create the folder in the current directory.
mkdir serverinfo

# Enter the new folder.
cd serverinfo

# Initialize the module.
go mod init serverinfo

Adım 2: Kütüphaneyi indirme

Ardından, API kütüphanesini GitHub'dan (bir kod barındırma sitesi) indireceğiz. Kitaplıkları indirmek için go getkomutu kullanmanız gerekir . Böylece kütüphane ve bağımlılıkları go.mod dosyasına eklenirken otomatik olarak indirilir . Daha önce açtığınız terminalde aşağıdaki komutu girin:

go get github.com/vultr/govultr

3. Adım: API anahtarınızı alma

API istemcisini kullanmak için API anahtarınıza ihtiyacınız olacaktır. API anahtarınızı Gösterge Tablonuzun Hesap bölümünün API sekmesinden alabilirsiniz . Ayrıca API anahtarınızı kullanmak için IP adresinizi yetkilendirmeniz gerekir. IP adresinizi ifconfig.me adresine giderek bulabilirsiniz . Özel IP'nizi değil, genel IP'nizi aradığınızı unutmayın . Özel IP'niz bilgisayarınızdaki ağ ayarlarınızda bulacağınız addır ve aşağıdaki CIDR aralıklarından birinde bulunur: 10.0.0.0/8 , 172.16.0.0/12 veya 192.168.0.0/16 .

IP adresinizi aldıktan sonra, Erişim Kontrolü bölümüne ekleyin . / İşaretinden sonraki kutuya yazın 32. /32netmask bir anlamdır 255.255.255.255. Bu, aralığa yalnızca IP'nizin dahil olduğu anlamına gelir.

Uyarı: API anahtarınızı şifrenizi koruyacak şekilde koruyun. API anahtarı, faturalandırma, sunucular ve depolama dahil tüm hesabınıza erişebilir.

Adım 4: Program dosyasını oluşturma

Şimdi program üzerinde çalışmaya başlayacağız. Editör seçiminizde oluşturduğumuz klasörü açın ve adlı bir dosya oluşturun main.go.

Dosyanın içine aşağıdaki kodu yazın veya kopyalayıp yapıştırın:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/vultr/govultr"
)

func main() {

}

package mainBiz komutu, bir kütüphane yaratmakta olduğu Git söyler. İçe aktarma ifadesi, kullanacağımız bağımlılıkları beyan eder. func main()programımızı çalıştırdığımızda çağrılan işlevdir.

5. Adım: API istemcisini başlatma

Bir sonraki adım API istemcisini başlatmaktır. Bunu yapmak için govultr.NewClient (http.Client, string) işlevini kullanmamız gerekir . Main () işlevinin içine aşağıdaki kodu ekleyin :

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

YOURAPIKEYDaha önce aldığınız API anahtarıyla değiştirin .

Bu koda biraz daha yakından bakalım. Sol tarafında, :=var client. Bu bir değişkenin adıdır . Değişken değerleri saklar. Sağ tarafta, govultr.NewClient işlev çağrısına sahibiz . İlk parametre nil'dir, çünkü varsayılan HTTP istemcisini değiştirmemiz gerekmez. İkinci parametre, kendimizi doğrulamak için kullandığımız API anahtarıdır. :=Operatör, bu durumda, işlev çağrısının sonucunu sol tarafa doğru yüzünü atar client.

6. Adım: API'yı kullanma

Programımız henüz bir şey yapmıyor. Yararlı hale getirmek için Vultr'dan sunucularımız hakkında bilgi alacağız. Biz kullanır govultr.Client.Server.List (context.Context) ([] govultr.Server, hatası) fonksiyonu. Main () işlevinin sonuna aşağıdaki kodu ekleyin :

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

Bu kodda, sunucu bilgilerini almak için API işlevini çağırıyoruz. Daha gelişmiş bir konu olduğu için henüz bağlamın anlamı hakkında endişelenmeyin . Şimdilik bilmemiz gereken tek şey, bağlamın API istemcisinin nasıl çalıştığını denetlediği. context.Background () boş bir bağlam döndürür . Biz iki değişken, içine sunucu bilgilerini almak sonra sunucular ve err bir hata varsa, biz kontrol edin. Öyleyse, kullanıcıyı hatayı bildirir ve kod 1 (hata) ile çıkarız.

Adım 7: Bilgileri gösterme

Artık sunucu değişkeninde ( [] govultr.Server ) bir dizi sunucu bulunduğuna göre, bunu gerçekten görüntüleyebiliriz. Main () işlevinin sonuna aşağıdaki kodu ekleyin :

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

İlk olarak, bir başlık yazdırırız (görüntüler) Servers:. Daha sonra, dizini atayarak dizini yok sayarak ve geçerli sunucuyu sunucu değişkenine atayarak, sunucular dizisi üzerinde döngü yaparız . Döngünün içinde sunucunun etiketini, IP adresini, konumunu, bekleyen ücretleri, geçerli bant genişliğini ve izin verilen bant genişliğini gösteririz. Bunu etkili bir şekilde yapmak için, biçim dizeleri gibi görünen dize kullanırız . Bir sonraki dizgiyi değiştirmek için araçlar, bir sonraki kayan nokta (ondalık sayı) yazdırmak için araçlar 2 ondalık basamağa yuvarlanır. Biçim dizisinin geri kalanı tam anlamıyla yazdırılır (olduğu gibi)._" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n"%s%.2f

Adım 8: Koşu

Bu noktada, kodunuz aşağıdaki gibi görünmelidir:

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

Şimdi kodu çalıştırabiliriz. Daha önce açtığımız terminale dönün ve komutu girin go run. Çıktı aşağıdakine benzer:

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

Bir hata alırsanız, API anahtarınızın ve IP adresinizin doğru olduğundan emin olun.

Sonuç

Bu noktada, resmi API istemcisini nasıl kullanacağınızla ilgili temel bilgileri başarıyla öğrenmiş olacak ve hesabınızdaki sunucular hakkında bilgi görüntüleyen bir program yazmış olacaksınız.

Sonraki adımlar

Buradan daha fazlasını yapabilirsiniz. Örneğin, belleği az olduğunda yeni bir sunucu sağlamak için bir program yazabilirsiniz. Bant genişliği veya depolama alanı azaldığında sunucunuzu otomatik olarak yükseltmek için bir uygulama yazabilirsiniz. Mevcut IP'nize göre DNS kayıtlarını otomatik olarak güncellemek için bir araç bile yazabilirsiniz.

Govultr kütüphaneye ilgili daha fazla bilgi için, üzerinde govultr kütüphane belgeleri bulabilirsiniz godoc .

govultr açık kaynaklı bir projedir . Govultr'da herhangi bir hata bulursanız, bunları GitHub'da bildirebilirsiniz . Ayrıca, bir çekme isteği göndererek koda doğrudan katkıda bulunabilirsiniz .



Leave a Comment

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?