Възходът на машините: Реални приложения на AI
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Въведение
Официалната библиотека Vultr Go може да се използва за взаимодействие с API на Vultr . Vultr API ви позволява да контролирате ресурсите, свързани с вашия акаунт, включително сървъри, dns, защитна стена, моментни снимки, мрежа и др. Този урок ще даде въведение в използването на официалния клиент Go 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 . Можете също да допринесете директно за кода, като изпратите заявка за изтегляне .
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече