Как да използвате библиотеката Vultr Go, за да получите информация за сървъра

Въведение

Официалната библиотека Vultr Go може да се използва за взаимодействие с API на Vultr . Vultr API ви позволява да контролирате ресурсите, свързани с вашия акаунт, включително сървъри, dns, защитна стена, моментни снимки, мрежа и др. Този урок ще даде въведение в използването на официалния клиент Go API, като създаде просто приложение за получаване на информация за вашите сървъри.

Предпоставки

  • Компютър с Windows, Linux или macOS с инсталиран Go 1.12+.
  • Основни познания по програмиране.
  • По избор: IDE, поддържаща Go (например Visual Studio Code, emacs или Atom).

Цели

  • За да научите как да използвате официалната библиотека Vultr API.
  • За да напишете програма за преглед на информация за сървъра.

Стъпка 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 mainказва Go, че ние сме за създаване на команда, а не библиотека. Инструкцията за импортиране декларира зависимостите, които ще използваме. 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: Показване на информацията

Сега, когато имаме масив от сървъри в променливата на сървърите ( []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:. След това преминаваме през масива от сървъри , като игнорираме индекса, като го присвояваме на _, и присвояваме текущия сървър на променливата на сървъра . В рамките на цикъла показваме етикета на сървъра, 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.

За повече информация относно библиотеката govultr, можете да намерите документацията на библиотеката govultr на godoc .

govultr е проект с отворен код . Ако откриете грешки в govultr, можете да докладвате за тях в GitHub . Можете също да допринесете директно за кода, като изпратите заявка за изтегляне .


Прикачване на блоково съхранение

Прикачване на блоково съхранение

Блоковите обеми за съхранение се прикрепват към екземпляри като допълнителни дискове. Трябва да прикачите тома към екземпляр, преди да може да се използва. Множество тома могат да б

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Windows Custom ISO с VirtIO драйвери

Windows Custom ISO с VirtIO драйвери

Изграждане на Windows ISO (само за сървърни версии) Вземете най-новите двоични драйвери VirtIO за Windows, пакетирани като ISO файл, оттук

Режим на възстановяване на Windows Server 2016

Режим на възстановяване на Windows Server 2016

При достъп до режим за възстановяване на Windows Server 2016 може да получите грешка при спиране (син екран). Решението е да получите достъп до опцията Repair Computer

Инсталирайте Nginx + PHP FPM + Кеширане + MySQL на Ubuntu 12.04

Инсталирайте Nginx + PHP FPM + Кеширане + MySQL на Ubuntu 12.04

Вероятно много хора ще използват своите Vultr VPS като уеб сървъри, добър избор би бил Nginx като уеб сървър. В тази тема ще опиша o

Vultr Обектно съхранение

Vultr Обектно съхранение

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

Активирайте Windows Audio на екземпляр на Windows Server

Активирайте Windows Audio на екземпляр на Windows Server

Забележка: Това ръководство ще работи за екземпляри на Windows 2012 R2 и Windows 2016. Windows сървърите по подразбиране нямат активирана услугата Windows Audio.

Примерно писмо за оторизация за BGP съобщения

Примерно писмо за оторизация за BGP съобщения

Моля, използвайте следния шаблон, когато искате оторизация за BGP съобщения. ПИСМО ЗА РАЗРЕШЕНИЕ [ДАТА] До когото може да се отнася, Thi

Как да създадете обратни DNS или PTR записи в контролния панел на Vultr

Как да създадете обратни DNS или PTR записи в контролния панел на Vultr

Въведение във Vultr Reverse DNS За да добавите PTR или Reverse DNS запис за IP адреса на вашите инстанции, трябва да следвате стъпките, описани по-долу:

Въведение във Vultr DNS

Въведение във Vultr DNS

Vultr предлага безплатен DNS хостинг за домейни на клиенти. Сървърите на имена са в мрежа AnyCAST и осигуряват бърза DNS резолюция. За да използвате Vultrs DNS, бихте искали

Достъп до режим на един потребител (нулиране на Root парола)

Достъп до режим на един потребител (нулиране на Root парола)

За да нулирате root паролата на вашия сървър, ще трябва да стартирате в режим на един потребител. Достъп до вашия сървър в клиентския портал на Vultr, след което следвайте стъпката

Множество частни мрежи

Множество частни мрежи

Vultr въведе поддръжка за множество частни мрежи в началото на 2018 г. Тази функция се предлага като подобрение на стандартната частна мрежа. кога

Как да използвате библиотеката Vultr Go, за да получите информация за сървъра

Как да използвате библиотеката Vultr Go, за да получите информация за сървъра

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

Висока наличност на Vultr с плаващ IP и BGP

Висока наличност на Vultr с плаващ IP и BGP

Vultr ви позволява да комбинирате две от нашите функции (Floating IPs и BGP), за да постигнете висока наличност. Настройка Ще ви трябват два екземпляра в sam

Решения за наблюдение за вашия VPS

Решения за наблюдение за вашия VPS

В тази статия ще научите за селекция от решения за мониторинг, налични за вашия Vultr сървър. В зависимост от избора на операционна система, тер

Как да генерирам SSH ключове?

Как да генерирам SSH ключове?

SSH ключ ви позволява да влезете във вашия сървър, без да имате нужда от парола. SSH ключовете могат да се добавят автоматично към сървърите по време на инсталационния процес.

Коригиране на мрежовата конфигурация след възстановяване на моментна снимка

Коригиране на мрежовата конфигурация след възстановяване на моментна снимка

След като възстановите моментна снимка на нова машина, може да срещнете проблеми, причинени от промяната на MAC адреса на мрежовия адаптер. Обикновено, к��гато мрежата

Защитна стена Vultr

Защитна стена Vultr

Vultr предлага уеб-базирано решение за защитна стена, което може да бъде активирано за защита на един или повече компютърни екземпляри. Наличие на набор от правила за защитна стена за вашите сървъри i

Конфигуриране на частна мрежа

Конфигуриране на частна мрежа

Ако присвоявате частна мрежа на съществуваща машина (или разгръщате собствена операционна система), ще трябва да конфигурирате IP адресите на частната

Конфигуриране на IPv6 на вашия VPS

Конфигуриране на IPv6 на вашия VPS

Всеки от тези примери предполага IPv6 подмрежа от 2001:db8:1000::/64. Ще трябва да ги актуализирате с подмрежата, която ви е назначена. Ние ще бъдем полезни

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

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 машини. Прочетете тази статия, за да научите повече