Vultr Goライブラリを使用してサーバー情報を取得する方法

前書き

公式のVultr Goライブラリを使用して、Vultr APIを操作できます。Vultr APIを使用すると、サーバー、dns、ファイアウォール、スナップショット、ネットワークなど、アカウントに関連付けられたリソースを制御できます。このチュートリアルでは、サーバーに関する情報を取得する簡単なアプリケーションを作成して、公式のGo APIクライアントの使用方法を紹介します。

前提条件

  • Go 1.12+がインストールされたWindows、Linux、またはmacOSを実行しているコンピューター。
  • 基本的なプログラミングの知識。
  • オプション:GoをサポートするIDE(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:ライブラリをダウンロードする

次に、GitHub(コードホスティングサイト)からAPIライブラリをダウンロードします。ライブラリをダウンロードするには、go getコマンドを使用する必要があります。これにより、ライブラリとその依存関係が自動的にダウンロードされ、go.modファイルに追加されます。前に開いたのと同じターミナルで、次のコマンドを入力します。

go get github.com/vultr/govultr

ステップ3:APIキーを取得する

APIクライアントを使用するには、APIキーが必要です。ダッシュボードの [ アカウント]セクションの [ API ]タブからAPIキーを取得できます。また、APIキーを使用するには、IPアドレスを承認する必要があります。ifconfig.meにアクセスすると、IPアドレスを確認できます。プライベートIPではなくパブリック IPを探していることに注意してください。あなたのプライベートIPを使用すると、コンピュータ上のネットワーク設定に見つけるだろうもので、以下のCIDR範囲のいずれかである:10.0.0.0/8172.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我々は、コマンドではなく、ライブラリを作成していることを行くように指示します。importステートメントは、使用する依存関係を宣言します。func main()プログラムを実行するときに呼び出される関数です。

ステップ5:APIクライアントを初期化する

次のステップは、APIクライアントを初期化することです。これを行うには、govultr.NewClient(http.Client、string)関数を使用する必要があり ます。main()関数内に次のコードを追加します。

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

YOURAPIKEY以前に取得したAPIキーに置き換えます。

このコードをもう少し詳しく見てみましょう。の左側にあり:=ます client。それが変数の名前です。変数は値を格納します。右側には、govultr.NewClientへの関数呼び出しがあります。デフォルトのHTTPクライアントを変更する必要がないため、最初のパラメーターはnilです。2番目のパラメーターは、自分自身を認証するために使用する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()は空のcontextを返し ます。サーバー情報を取得して、サーバーerrという2つの変数に入れ たら、エラーがないかどうかを確認します。その場合は、ユーザーにエラーを通知し、コード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:ます。次に、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クライアントの使用方法の基本を首尾よく学び、アカウント内のサーバーに関する情報を表示するプログラムを作成しました。

さらなるステップ

ここから、さらに多くのことができます。たとえば、メモリが不足しているときに新しいサーバーをプロビジョニングするプログラムを作成できます。帯域幅またはストレージが不足しているときにサーバーを自動的にアップグレードするアプリを作成できます。現在のIPに基づいてDNSレコードを自動的に更新するツールを作成することもできます。

govultrライブラリの詳細については、godocでgovultrライブラリのドキュメントをご覧ください

govultrは オープンソースプロジェクトです。govultrにバグを見つけた場合は、GitHubで報告でき ますプルリクエストを送信して、コードに直接貢献することもでき ます。



Leave a Comment

Vultr VPSにアクセスする方法

Vultr VPSにアクセスする方法

Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報

VirtIOドライバーを使用したWindowsカスタムISO

VirtIOドライバーを使用したWindowsカスタムISO

Windows ISOのビルド(サーバーバージョンのみ)ISOファイルとしてパッケージ化された、Windows用の最新のバイナリVirtIOドライバーを入手します。

ベアメタルのカスタムISO

ベアメタルのカスタムISO

はじめにVultrには現在、カスタムISOをアップロードしてベアメタルにマウントできるシステムがありません。しかし、これはあなたを止めません

OS ISOをVultrにアップロードするための要件

OS ISOをVultrにアップロードするための要件

Vultrは、幅広いオペレーティングシステムから選択できます。ただし、Kalなどの独自のカスタムオペレーティングシステムISOをアップロードすることもできます。

Windowsサーバーでの時刻の修正

Windowsサーバーでの時刻の修正

デフォルトでは、Windows Server 2012を搭載したVultr VPSのシステム時刻はUTCタイムゾーンに設定されています。タイムゾーンは好きなように変更できますが、変更することもできます。

VultrスタートアップスクリプトによるUbuntu 16の更新の自動化

VultrスタートアップスクリプトによるUbuntu 16の更新の自動化

Ubuntu 16以降では、systemdタイマーを使用して、aptに関連する定期的なタスク(パッケージリストの更新、無人アップグレードの適用など)を実行します。ティ

VPSの監視ソリューション

VPSの監視ソリューション

この記事では、Vultrサーバーで使用できる監視ソリューションの選択について学びます。オペレーティングシステムの選択に応じて、

BGPアナウンスの承認レターの例

BGPアナウンスの承認レターの例

BGPアナウンスの承認を要求する場合は、次のテンプレートを使用してください。承認書[日付]関係者、ティ

Vultrコントロールパネルで逆DNSまたはPTRレコードを作成する方法

Vultrコントロールパネルで逆DNSまたはPTRレコードを作成する方法

VultrリバースDNSの概要インスタンスIPアドレスのPTR、またはリバースDNSレコードを追加するには、以下の手順に従う必要があります。

Nginx + PHP FPM +キャッシング+ MySQLをUbuntu 12.04にインストールします

Nginx + PHP FPM +キャッシング+ MySQLをUbuntu 12.04にインストールします

おそらく多くの人がVultr VPSをWebサーバーとして使用するでしょう。WebサーバーとしてNginxを選択するのが良いでしょう。このトピックでは、私はoを説明します

VPSにセカンダリIPv4アドレスを追加する

VPSにセカンダリIPv4アドレスを追加する

このチュートリアルでは、Vultr VPSで追加のIPv4アドレスを設定する方法について説明します。以下を前提とします。VPSのメインIPアドレスは1.2.3.4です。

RPKI

RPKI

RPKI(Resource Public Key Infrastructure)は、BGPハイジャックの防止に役立つ方法です。暗号署名を使用して、ASNが許可されていることを検証します。

Windows ServerインスタンスでWindowsオーディオを有効にする

Windows ServerインスタンスでWindowsオーディオを有効にする

注:このガイドは、Windows 2012 R2およびWindows 2016インスタンスで機能します。Windowsサーバーでは、デフォルトでWindows Audioサービスが有効になっていません。

Vultr DNSの概要

Vultr DNSの概要

Vultrは、お客様のドメインに無料のDNSホスティングを提供しています。ネームサーバーはAnyCASTネットワーク上にあり、高速DNS解決を保証します。Vultrs DNSを使用するには、

Vultrを使用した仮想サーバーの複製

Vultrを使用した仮想サーバーの複製

場合によっては、たとえば、スケーリングの目的で、またはサーバーのリージョンを変更するために、仮想サーバーのクローンを作成する必要があります。Vultrでは、これは簡単です。

Vultr VPSでCoreOSを実行する

Vultr VPSでCoreOSを実行する

お読みください:Vultrの注文ページでCoreOSが提供されるようになりました-このガイドでは、CoreOSを手動で設定する方法について説明します。これらの手順では、実行を順を追って説明します

Vultrオブジェクトストレージ

Vultrオブジェクトストレージ

S3互換*オブジェクトストレージがVultrクラウドで利用できるようになりました。私たちのオブジェクトストレージテクノロジーは、手頃な価格でスケーラブルで、簡単に統合できます。

シングル・サインオン

シングル・サインオン

企業のログインシステムは、シングルサインオン(SSO)機能を使用してVultrsアカウントシステムと統合できます。SSOはパスワード管理を簡素化します

ドライバー更新のインストール後のWindows VPSの修復

ドライバー更新のインストール後のWindows VPSの修復

Microsoftは最近、Windowsを実行しているVultr VPSインスタンスが正しく起動しないようにするWindows Updateを介してドライバーをリリースしました。これらのドライバーは次のように呼ばれます:

Ubuntu 16.04画像がEC2メタデータサービスに関するエラーを報告する

Ubuntu 16.04画像がEC2メタデータサービスに関するエラーを報告する

起動時に、一部の古いUbuntu 16.04インスタンスで次の警告が表示される場合があります:************************************ **************************************

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、