نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يمكن استخدام مكتبة Vultr Go الرسمية للتفاعل مع Vultr API . تسمح لك Vultr API بالتحكم في الموارد المرتبطة بحسابك ، بما في ذلك الخوادم ، ونظام أسماء النطاقات ، وجدار الحماية ، واللقطات ، والشبكة ، والمزيد. سيقدم هذا البرنامج التعليمي مقدمة لاستخدام عميل Go 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
لاستخدام عميل 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 الخاص بك مثل حماية كلمة المرور الخاصة بك. يمكن لمفتاح واجهة برمجة التطبيقات الوصول إلى حسابك بالكامل ، بما في ذلك الفوترة والخوادم ووحدة التخزين.
الآن ، سنبدأ العمل على البرنامج. افتح المجلد الذي أنشأناه في اختيارك للمحرر ، وقم بإنشاء ملف مسمى main.go
.
داخل الملف ، اكتب أو انسخ والصق الرمز التالي:
package main
import (
"context"
"fmt"
"os"
"github.com/vultr/govultr"
)
func main() {
}
و package main
يقول العودة أننا خلق أمر، وليس المكتبة. يصرح بيان الاستيراد بالتبعيات التي سنستخدمها. func main()
هي الوظيفة التي يتم استدعاؤها عند تشغيل برنامجنا.
الخطوة التالية هي تهيئة عميل API. للقيام بذلك ، نحتاج إلى استخدام دالة govultr.NewClient (http.Client ، سلسلة) . أضف الكود التالي داخل الوظيفة الرئيسية () :
client := govultr.NewClient(nil, "YOURAPIKEY")
استبدلها YOURAPIKEY
بمفتاح API الذي استردته سابقًا.
دعونا ننظر إلى هذا الرمز أقرب قليلاً. على الجانب الأيسر :=
، لدينا client
. هذا هو اسم متغير . يقوم المتغير بتخزين القيم. على الجانب الأيمن ، لدينا استدعاء دالة إلى govultr.NewClient . المعلمة الأولى هي لا شيء ، لأننا لسنا بحاجة إلى تغيير عميل HTTP الافتراضي. المعلمة الثانية هي مفتاح API الذي نستخدمه لمصادقة أنفسنا. في :=
المشغل يعين الجانب الأيمن إلى الجانب الأيسر، في هذه الحالة، ونتيجة لاستدعاء دالة ل client
.
لا يزال برنامجنا لا يفعل أي شيء حتى الآن. لجعله مفيدًا ، سنقوم باسترداد معلومات حول خوادمنا من 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 عشرية. تتم طباعة بقية سلسلة التنسيق حرفياً (كما هي).
عند هذه النقطة ، يجب أن يبدو الرمز الخاص بك كما يلي:
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 . يمكنك أيضًا المساهمة في الرمز مباشرةً عن طريق إرسال طلب سحب .
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد