注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com
介绍
官方的Vultr 去图书馆 可以用来
与Vultr API进行交互。 Vultr API允许
您可以控制与帐户相关联的资源,包括服务器,
dns,防火墙,快照,网络等。本教程将提供
通过创建一个简单的使用Go API官方客户端的介绍
应用程序以获取有关服务器的信息。
先决条件
运行Windows,Linux或macOS且安装了Go 1.12+的计算机。
基本的编程知识。
可选:支持Go的IDE(例如Visual Studio Code,emacs或Atom)。
目标
了解如何使用官方的Vultr API库。
编写程序以查看服务器信息。
步骤1:建立专案
首先,我们将从创建一个新模块(项目)开始。通常,您会使用
您的代码存储库的URL作为模块名称,但这超出了
本教程的范围。现在,我们将使用 服务器信息 作为模块名称。
要创建项目,请运行以下命令:
# Create the folder in the current directory.
mkdir serverinfo
# Enter the new folder.
cd serverinfo
# Initialize the module.
go mod init serverinfo
步骤2:下载资料库
接下来,我们将从GitHub(一个代码托管站点)下载API库。至
下载库,您需要使用 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密钥就像保护密码一样。 API
键可以访问您的整个帐户,包括帐单,服务器和存储。
步骤4:创建程序文件
现在,我们将开始研究该程序。打开我们创建的文件夹
在您选择的编辑器中,并创建一个名为 main.go
。
在文件内,键入或复制粘贴以下代码:
package main
import (
"context"
"fmt"
"os"
"github.com/vultr/govultr"
)
func main() {
}
的 package main
告诉Go我们正在创建命令,而不是库。的
import语句声明我们将使用的依赖项。 func main()
是
运行程序时调用的函数。
步骤5:初始化API客户端
下一步是初始化API客户端。为此,我们需要使用
govultr.NewClient(http.Client,字符串) 功能。添加以下代码
在 – 的里面 主要() 功能:
client := govultr.NewClient(nil, "YOURAPIKEY")
更换 YOURAPIKEY
使用您之前检索的API密钥。
让我们更仔细地看一下这段代码。在左侧 :=
, 我们有
client
。那是变量的名称。变量存储值。在
右侧,我们有一个函数调用 govultr.NewClient。首先
参数为nil,因为我们不需要更改默认的HTTP客户端。的
第二个参数是我们用来认证自己的API密钥。的 :=
运算符将右侧分配给左侧,在这种情况下,
函数调用 client
。
步骤6:使用API
我们的程序仍然没有执行任何操作。为了使其有用,我们将
从Vultr检索有关我们服务器的信息。我们将使用
govultr.Client.Server.List(context.Context)([]govultr.Server,错误)
功能。将以下代码添加到
结束 主要() 功能:
servers, err := client.Server.List(context.Background())
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %vn", err)
os.Exit(1)
}
在这段代码中,我们正在调用API函数来检索服务器
信息。不用担心 语境 但是,因为那是一个
更高级的主题。现在,我们需要知道的是 语境
控制API客户端的运行方式。 context.Background() 返回一个空
语境。在将服务器信息检索到两个变量之后,
伺服器 和 呃,我们检查是否有错误。如果是这样,我们告诉告知
错误的用户,并退出并返回代码1(错误)。
步骤7:显示信息
现在,我们已经在 伺服器 变量
([]政府服务器),我们实际上可以显示它。在以下位置添加以下代码
的结尾 主要() 功能:
fmt.Println("Servers:")
for _, server := range servers {
fmt.Printf(" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidthn",
server.Label,
server.MainIP,
server.Location,
server.PendingCharges,
server.CurrentBandwidth,
server.AllowedBandwidth,
)
}
首先,我们打印(显示)标题, Servers:
。然后,我们遍历
伺服器 数组,通过将其分配给索引来忽略索引 _
,并分配
当前服务器 服务器 变量。在循环内部,我们显示
服务器的标签,IP地址,位置,待处理的费用,当前带宽和
允许的带宽。为了有效地做到这一点,我们使用格式字符串,即字符串
看起来像
" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidthn"
。的 %s
表示替换下一个字符串,而 %.2f
意味着打印下一个
浮点数(十进制数)四舍五入到小数点后两位。其余格式
字符串按原样打印(原样)。
步骤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: %vn", err)
os.Exit(1)
}
fmt.Println("Servers:")
for _, server := range servers {
fmt.Printf(" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidthn",
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库
有关的文件 戈多克。
govultr是一个
开源项目。
如果您在govultr中发现任何错误,可以将其报告
的GitHub。您也可以贡献
通过提交一个
拉取要求。
注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com