Як використовувати бібліотеку Vultr Go для отримання інформації про сервер

Вступ

Для взаємодії з Vultr API можна використовувати офіційну бібліотеку Vultr Go . API Vultr дозволяє керувати ресурсами, пов’язаними з вашим обліковим записом, включаючи сервери, DNS, брандмауер, знімки, мережу тощо. Цей підручник познайомиться з використанням офіційного клієнта Go API, створивши просту програму для отримання інформації про ваші сервери.

Передумови

  • Комп’ютер під керуванням Windows, Linux або macOS із встановленою Go 1.12+.
  • Базові знання програмування.
  • Додатково: IDE з підтримкою Go (наприклад, Visual Studio Code, emacs або Atom).

Цілі

  • Щоб дізнатися, як користуватися офіційною бібліотекою API Vultr.
  • Щоб написати програму для перегляду інформації про сервер.

Крок 1: Створення проекту

Спочатку ми почнемо зі створення нового модуля (проекту). Зазвичай ви використовуєте URL-адресу сховища для свого коду як назву модуля, але це виходить за рамки цього підручника. Наразі ми будемо використовувати serverinfo як назву модуля.

Щоб створити проект, виконайте такі команди:

# Create the folder in the current directory. mkdir serverinfo # Enter the new folder. cd serverinfo # Initialize the module. go mod init serverinfo

Крок 2: Завантаження бібліотеки

Далі ми завантажимо бібліотеку 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 – це те, що ви знайдете в налаштуваннях мережі на комп’ютері, і знаходиться в одному з наступних діапазонів 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 так само, як і пароль. Ключ API має доступ до всього вашого облікового запису, включаючи виставлення рахунків, сервери та сховище.

Крок 4: Створення програмного файлу

Тепер ми починаємо працювати над програмою. Відкрийте папку, яку ми створили у вибраному редакторі, і створіть файл з іменем main.go.

Усередині файлу введіть або скопіюйте та вставте наступний код:

package main import ( "context" "fmt" "os" "github.com/vultr/govultr" ) func main() { }

Повідомляє package mainGo, що ми створюємо команду, а не бібліотеку. Оператор імпорту оголошує залежності, які ми будемо використовувати. func main()це функція, яка викликається, коли ми запускаємо нашу програму.

Крок 5: Ініціалізація клієнта API

Наступним кроком є ​​ініціалізація клієнта API. Для цього нам потрібно скористатися функцією govultr.NewClient(http.Client, string) . Додайте такий код усередину функції main() :

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

Замініть YOURAPIKEYключ API, який ви отримали раніше.

Давайте розглянемо цей код трохи ближче. З лівого боку :=ми маємо client. Це ім'я змінної . Змінна зберігає значення. З правого боку у нас є виклик функції govultr.NewClient . Першим параметром є нуль, тому що нам не потрібно змінювати клієнта HTTP за замовчуванням. Другим параметром є ключ API, який ми використовуємо для автентифікації. :=Оператор присвоює праву сторону на ліву сторону, в цьому випадку результат виклику функції до client.

Крок 6: Використання API

Наша програма ще нічого не робить. Щоб зробити це корисним, ми збираємося отримати інформацію про наші сервери з Vultr. Ми будемо використовувати функцію govultr.Client.Server.List(context.Context) ([]govultr.Server, помилка) . Додайте наступний код в кінці функції main() :

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

У цьому коді ми викликаємо функцію API для отримання інформації про сервер. Поки що не турбуйтеся про значення контексту , оскільки це більш просунута тема. Наразі все, що нам потрібно знати, це те, що контекст контролює роботу клієнта API. context.Background() повертає порожній контекст . Після отримання інформації про сервер у дві змінні, servers і err , ми перевіряємо, чи не сталася помилка. Якщо так, ми повідомляємо користувачеві про помилку та виходимо з кодом 1 (помилка).

Крок 7: Показ інформації

Тепер, коли у нас є масив серверів у змінній servers ( []govultr.Server ), ми можемо відобразити його. Додайте наступний код в кінці функції main() :

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:. Потім ми перебираємо масив servers , ігноруючи індекс, призначаючи його до _, і призначаючи поточний сервер змінній server . Усередині циклу ми відображаємо мітку сервера, IP-адресу, розташування, незавершені платежі, поточну пропускну здатність і дозволену пропускну здатність. Щоб зробити це ефективно, ми використовуємо рядки формату , рядок, який виглядає як " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n". Засіб %sдля заміни наступного рядка, а %.2fзасіб для друку наступного float (десяткового числа) округлено до 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.

Щоб отримати додаткову інформацію про бібліотеку govultr, ви можете знайти документацію бібліотеки govultr на godoc .

govultr — це проект з відкритим кодом . Якщо ви знайдете якісь помилки в goultr, ви можете повідомити про них на GitHub . Ви також можете безпосередньо внести свій вклад в код, надіславши запит на витяг .


Які порти заблоковані?

Які порти заблоковані?

Ми блокуємо кілька вихідних портів для безпеки мережі. Заблоковано за замовчуванням. Ви можете попросити видалити ці блокування, відкривши заявку в службу підтримки. TCP порт 2

Блок зберігання Vultr

Блок зберігання Vultr

Технологія Vultrs Cloud Block Storage дозволяє підключити високопродуктивне масштабоване сховище до вашого примірника, що значно покращує управління простором

Як змінити розмір VPS-диска?

Як змінити розмір VPS-диска?

У цьому посібнику пояснюється, як змінити розмір жорсткого диска на Vultr VPS. Якщо ви нещодавно оновили свій план до плану з більшим диском, ви можете дотримуватися цього

Індивідуальний ISO на голому металі

Індивідуальний ISO на голому металі

Вступ Наразі Vultr не має системи, яка б дозволяла завантажувати та монтувати користувацькі ISO-файли на голий метал. Однак це вас не зупиняє

Сховище обєктів Vultr

Сховище обєктів Vultr

S3-сумісне* сховище об’єктів тепер доступне в хмарі Vultr. Наша технологія зберігання об’єктів доступна, масштабована та легко інтегрована у вас

Приклад листа авторизації для оголошень BGP

Приклад листа авторизації для оголошень BGP

Будь ласка, використовуйте наведений нижче шаблон, коли запитуєте авторизацію для оголошень BGP. ЛИСТ-АВТОРИЗАЦІЯ [ДАТА] Кому це може стосуватися, Thi

Вимоги для завантаження ISO ISO ОС до Vultr

Вимоги для завантаження ISO ISO ОС до Vultr

Vultr пропонує широкий вибір операційних систем на вибір. Однак іноді ви можете завантажити власну власну операційну систему ISO, наприклад Kal

Кілька приватних мереж

Кілька приватних мереж

Vultr представив підтримку кількох приватних мереж на початку 2018 року. Ця функція пропонується як доповнення до стандартної приватної мережі. Whe

Як використовувати бібліотеку Vultr Go для отримання інформації про сервер

Як використовувати бібліотеку Vultr Go для отримання інформації про сервер

Вступ Офіційну бібліотеку Vultr Go можна використовувати для взаємодії з API Vultr. API Vultr дозволяє керувати ресурсами, пов’язаними з вами

Висока доступність на Vultr з плаваючим IP і BGP

Висока доступність на Vultr з плаваючим IP і BGP

Vultr дозволяє об’єднати дві наші функції (плаваючі IP-адреси та BGP) для досягнення високої доступності. Налаштування Вам знадобляться два екземпляри в sam

Як відновити знімок

Як відновити знімок

Знімки — це ефективний спосіб зробити повну резервну копію вашого сервера. Ви не зможете відновити окремі файли, а відновити весь сервер. Ті

Брандмауер Vultr

Брандмауер Vultr

Vultr пропонує рішення брандмауера на базі Інтернету, яке можна ввімкнути для захисту одного або кількох екземплярів обчислень. Наявність набору правил брандмауера для ваших серверів i

Звіт про інциденти безпеки Cloudflare

Звіт про інциденти безпеки Cloudflare

Важливе повідомлення про безпеку: як ви, можливо, знаєте, Vultr використовує продукт Cloudflares CDN для підвищення швидкості нашого веб-сайту по всьому світу та захисту від

Використання двофакторної аутентифікації для входу в панель керування Vultr

Використання двофакторної аутентифікації для входу в панель керування Vultr

Двофакторна аутентифікація або 2FA — це техніка, яка додає рівень безпеки, вимагаючи додаткового кроку аутентифікації для входу. Для надійної безпеки

Vultr DDoS захист

Vultr DDoS захист

Тепер ми безкоштовно включаємо 10 Гбіт/с DDoS-захист від атак на всі екземпляри виділеної хмари Vultr (VDC) у Нью-Йорку/Нью-Джерсі. Як працює захист від DDoS?

Налаштування BGP на Vultr

Налаштування BGP на Vultr

Функція Vultrs BGP дозволяє вам використовувати власний IP-простір і використовувати його в будь-якому з наших місць. Початок роботи Щоб використовувати BGP, вам потрібно: Розгорнутий Vult

Модуль Vultr WHMCS

Модуль Vultr WHMCS

Примітка. Будь ласка, прочитайте цей документ повністю, перш ніж інсталювати модуль інформації модуля Vultr WHMCS Версія: 2.0.0 (оновлено) Дата випуску: 25 червня 2019 р.

Єдиний вхід

Єдиний вхід

Вашу корпоративну систему входу можна інтегрувати з системою облікових записів Vultrs за допомогою функції єдиного входу (SSO). SSO допомагає спростити керування паролями

Додайте додаткову IPv4-адресу до свого VPS

Додайте додаткову IPv4-адресу до свого VPS

У цьому посібнику пояснюється, як налаштувати додаткову адресу IPv4 на Vultr VPS. Ми припустимо наступне: Основна IP-адреса вашого VPS – 1.2.3.4.

Автоматичне резервне копіювання

Автоматичне резервне копіювання

Vultr пропонує автоматичне резервне копіювання як опцію для обчислювальних екземплярів. Резервні копії надзвичайно важливі для критично важливих систем і додатків системи резервного копіювання Vultr

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше