كيفية استخدام مكتبة 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

كيفية الوصول إلى Vultr VPS الخاص بك

كيفية الوصول إلى Vultr VPS الخاص بك

يوفر Vultr عدة طرق مختلفة للوصول إلى VPS لتكوين وتثبيت واستخدام. بيانات اعتماد الوصول بيانات اعتماد الوصول الافتراضية لـ VPS الخاص بك

Windows مخصص ISO مع برامج تشغيل VirtIO

Windows مخصص ISO مع برامج تشغيل VirtIO

إنشاء Windows ISO (إصدارات الخادم فقط) احصل على أحدث برامج تشغيل VirtIO الثنائية لنظام Windows ، والتي تم تعبئتها كملف ISO ، من

تصحيح الوقت على Windows Server

تصحيح الوقت على Windows Server

افتراضيًا ، يتم تعيين وقت نظام Vultr VPS مع Windows Server 2012 على المنطقة الزمنية UTC. يمكنك تغيير المنطقة الزمنية كما تريد ، ولكن تغييرها ر

علامة واحدة على

علامة واحدة على

يمكن دمج نظام تسجيل الدخول الخاص بشركتك مع نظام حساب Vultrs باستخدام ميزة الدخول الموحد (SSO). يساعد تسجيل الدخول الموحد في تبسيط إدارة كلمات المرور

Vultr Firewall

Vultr Firewall

يقدم Vultr حل جدار الحماية المستند إلى الويب والذي يمكن تمكينه لحماية مثيل واحد أو أكثر من مثيلات الحساب. وجود مجموعة قواعد لجدار الحماية لخوادمك i

تكوين IPv6 على VPS الخاص بك

تكوين IPv6 على VPS الخاص بك

يفترض كل من هذه الأمثلة شبكة فرعية IPv6 لعام 2001: db8: 1000 :: / 64. ستحتاج إلى تحديثها بالشبكة الفرعية التي تم تعيينها لك. سنكون

مثال على خطاب تفويض لإعلانات BGP

مثال على خطاب تفويض لإعلانات BGP

يرجى استخدام النموذج التالي عند طلب ترخيص لإعلانات BGP. خطاب التفويض [DATE] لمن يهمه الأمر ، ثي

كيفية إنشاء سجلات DNS أو PTR عكسية في لوحة تحكم Vultr

كيفية إنشاء سجلات DNS أو PTR عكسية في لوحة تحكم Vultr

مقدمة عن Vultr Reverse DNS لإضافة PTR أو سجل DNS العكسي لمثيلات IP الخاصة بك ، تحتاج إلى اتباع الخطوات الموضحة أدناه:

قم بتثبيت Nginx + PHP FPM + Caching + MySQL على Ubuntu 12.04

قم بتثبيت Nginx + PHP FPM + Caching + MySQL على Ubuntu 12.04

من المحتمل أن الكثير من الناس سيستخدمون Vultr VPSes كخوادم ويب ، وسيكون الخيار الجيد هو Nginx كخادم ويب. في هذا الموضوع سوف أصف س

حلول رصد VPS الخاص بك

حلول رصد VPS الخاص بك

في هذه المقالة ، ستتعرف على مجموعة مختارة من حلول المراقبة المتاحة لخادم Vultr الخاص بك. اعتمادا على اختيار نظام التشغيل الخاص بك ، هناك

كيف يمكنني إنشاء مفاتيح SSH؟

كيف يمكنني إنشاء مفاتيح SSH؟

يسمح لك مفتاح SSH بتسجيل الدخول إلى الخادم الخاص بك دون الحاجة إلى كلمة مرور. يمكن إضافة مفاتيح SSH تلقائيًا إلى الخوادم أثناء عملية التثبيت.

تمكين صوت Windows على مثيل Windows Server

تمكين صوت Windows على مثيل Windows Server

ملاحظة: سيعمل هذا الدليل مع مثيلات Windows 2012 R2 و Windows 2016. ملقمات Windows ، بشكل افتراضي ، لم يتم تمكين خدمة Windows Audio.

شبكات خاصة متعددة

شبكات خاصة متعددة

قدم Vultr الدعم لشبكات خاصة متعددة في أوائل عام 2018. يتم تقديم هذه الميزة كتعزيز للشبكات الخاصة القياسية. Whe

تشغيل CoreOS على Vultr VPS

تشغيل CoreOS على Vultr VPS

يرجى قراءة: تقدم Vultr الآن CoreOS على صفحة الطلب - يوضح هذا الدليل كيفية إعداد CoreOS يدويًا. ستوجهك هذه التعليمات خلال الجري

تكوين BGP على فولتر

تكوين BGP على فولتر

تتيح لك ميزة Vultrs BGP إحضار مساحة IP الخاصة بك واستخدامها عبر أي من مواقعنا. الشروع في استخدام BGP ، تحتاج إلى: Vult منتشرة

إصلاح Windows VPS بعد تثبيت تحديثات برنامج التشغيل

إصلاح Windows VPS بعد تثبيت تحديثات برنامج التشغيل

أصدرت Microsoft مؤخرًا برامج تشغيل عبر Windows Update يمكنها منع تشغيل Vultr VPS الذي يقوم بتشغيل Windows من التشغيل بشكل صحيح. تسمى برامج التشغيل هذه:

أوبونتو 16.04 صور تقرير أخطاء حول خدمة بيانات التعريف EC2

أوبونتو 16.04 صور تقرير أخطاء حول خدمة بيانات التعريف EC2

عند التمهيد ، قد تظهر بعض حالات Ubuntu 16.04 القديمة التحذير التالي: ************************************ **************************************

تغيير عنوان IP الصادر الصادر من Postfix

تغيير عنوان IP الصادر الصادر من Postfix

عندما يتم تعيين أكثر من عنوان IP لخادم ما ، يقوم Postfix بتحديد عنوان IP لرسائل البريد الإلكتروني الصادرة بشكل عشوائي. يمكن أن يؤدي هذا السلوك Postfix الافتراضي

إعادة تعيين كلمة مرور مسؤول Windows Server

إعادة تعيين كلمة مرور مسؤول Windows Server

في بعض الأحيان نسيت كلمة مرور المسؤول المحلي على Windows وتحتاج إلى إعادة تعيينها. من الممكن بسهولة إعادة تعيين كلمة المرور هذه i

نظرة ثاقبة على 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. قراءة هذه المادة لمعرفة المزيد