كيفية استخدام مكتبة Vultr Go للحصول على معلومات الخادم

المقدمة

يمكن استخدام مكتبة Vultr Go الرسمية للتفاعل مع Vultr API . تسمح لك Vultr API بالتحكم في الموارد المرتبطة بحسابك ، بما في ذلك الخوادم ، ونظام أسماء النطاقات ، وجدار الحماية ، واللقطات ، والشبكة ، والمزيد. سيقدم هذا البرنامج التعليمي مقدمة لاستخدام عميل Go API الرسمي من خلال إنشاء تطبيق بسيط للحصول على معلومات حول خوادمك.

المتطلبات الأساسية

  • جهاز كمبيوتر يعمل بنظام التشغيل Windows أو Linux أو macOS مع تثبيت Go 1.12+.
  • معرفة البرمجة الأساسية.
  • اختياري: يدعم IDE Go (على سبيل المثال ، Visual Studio Code أو emacs أو Atom).

الأهداف

  • لمعرفة كيفية استخدام مكتبة Vultr API الرسمية.
  • لكتابة برنامج لعرض معلومات الخادم.

الخطوة الأولى: إنشاء المشروع

أولاً ، سنبدأ بإنشاء وحدة (مشروع) جديدة. عادة ، يمكنك استخدام عنوان URL إلى مستودع للشفرة الخاصة بك كاسم الوحدة النمطية ، ولكن هذا خارج نطاق هذا البرنامج التعليمي. في الوقت الحالي ، سنستخدم serverinfo كاسم الوحدة النمطية.

لإنشاء المشروع ، قم بتشغيل الأوامر التالية:

# Create the folder in the current directory.
mkdir serverinfo

# Enter the new folder.
cd serverinfo

# Initialize the module.
go mod init serverinfo

الخطوة الثانية: تنزيل المكتبة

بعد ذلك ، سنقوم بتنزيل مكتبة 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 الخاص بك. عنوان 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 الخاص بك مثل حماية كلمة المرور الخاصة بك. يمكن لمفتاح واجهة برمجة التطبيقات الوصول إلى حسابك بالكامل ، بما في ذلك الفوترة والخوادم ووحدة التخزين.

الخطوة 4: إنشاء ملف البرنامج

الآن ، سنبدأ العمل على البرنامج. افتح المجلد الذي أنشأناه في اختيارك للمحرر ، وقم بإنشاء ملف مسمى main.go.

داخل الملف ، اكتب أو انسخ والصق الرمز التالي:

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/vultr/govultr"
)

func main() {

}

و package mainيقول العودة أننا خلق أمر، وليس المكتبة. يصرح بيان الاستيراد بالتبعيات التي سنستخدمها. func main()هي الوظيفة التي يتم استدعاؤها عند تشغيل برنامجنا.

الخطوة 5: تهيئة عميل API

الخطوة التالية هي تهيئة عميل API. للقيام بذلك ، نحتاج إلى استخدام دالة govultr.NewClient (http.Client ، سلسلة) . أضف الكود التالي داخل الوظيفة الرئيسية () :

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) . أضف الكود التالي في نهاية الوظيفة الرئيسية () :

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

في هذا الكود ، نقوم باستدعاء وظيفة API لاسترداد معلومات الخادم. لا تقلق بشأن معنى السياق بعد ، فهذا موضوع أكثر تقدمًا. في الوقت الحالي ، كل ما نحتاج إلى معرفته هو أن السياق يتحكم في كيفية تشغيل عميل واجهة برمجة التطبيقات. context.Background () بإرجاع سياق فارغ . بعد أن استرداد المعلومات الخادم في اثنين من المتغيرات، خوادم و يخطئ ، ونحن تحقق ما إذا كان هناك خطأ. إذا كان الأمر كذلك ، فإننا نخبر المستخدم بالخطأ والخروج برمز 1 (خطأ).

الخطوة السابعة: إظهار المعلومات

الآن لدينا مجموعة من الخوادم في متغير الخوادم ( [] govultr.Server ) ، يمكننا بالفعل عرضه. أضف الكود التالي في نهاية الوظيفة الرئيسية () :

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وسائل لطباعة تعويم التالي (رقم عشري) تقريب إلى 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 الحالي الخاص بك.

لمزيد من المعلومات حول مكتبة الحكومة ، يمكنك العثور على وثائق مكتبة الحكومة على godoc .

govultr هو مشروع مفتوح المصدر . إذا وجدت أي أخطاء في الحكومة ، يمكنك الإبلاغ عنها على GitHub . يمكنك أيضًا المساهمة في الرمز مباشرةً عن طريق إرسال طلب سحب .



Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد