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는 컴퓨터의 네트워크 설정에서 찾을 수 있으며 10.0.0.0/8 , 172.16.0.0/12 또는 192.168.0.0/16 CIDR 범위 중 하나입니다 .

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에 대한 함수 호출이 있습니다 . 첫 번째 매개 변수는 nil입니다. 기본 HTTP 클라이언트를 변경할 필요가 없기 때문입니다. 두 번째 매개 변수는 인증에 사용하는 API 키입니다. :=작업자는이 경우에 대한 함수 호출의 결과를 좌측으로 우측 할당 client.

6 단계 : API 사용

우리 프로그램은 아직 아무것도하지 않습니다. 유용하게 만들기 위해 Vultr에서 서버에 대한 정보를 검색합니다. 우리는 govultr.Client.Server.List (context.Context) ([] govultr.Server, error) 함수를 사용할 것입니다. 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 () 는 빈 컨텍스트를 반환합니다 . 서버 정보를 두 개의 변수 servererr 로 검색 한 후 오류 가 있는지 확인합니다. 그렇다면 오류를 사용자에게 알리고 코드 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 클라이언트를 사용하는 방법에 대한 기본 사항을 익히고 계정의 서버에 대한 정보를 표시하는 프로그램을 작성했습니다.

추가 단계

여기에서 훨씬 더 많은 것을 할 수 있습니다. 예를 들어, 메모리가 부족할 때 새 서버를 프로비저닝하는 프로그램을 작성할 수 있습니다. 대역폭이나 저장 공간이 부족한 경우 서버를 자동으로 업그레이드하는 앱을 작성할 수 있습니다. 현재 IP를 기반으로 DNS 레코드를 자동으로 업데이트하는 도구를 작성할 수도 있습니다.

govultr 라이브러리에 대한 자세한 내용은, 당신의 govultr 라이브러리 문서를 찾을 수 있습니다 godoc을 .

govultr은 오픈 소스 프로젝트 입니다. govultr에서 버그를 발견하면 GitHub 에서 버그를보고 할 수 있습니다 . 풀 요청 을 제출하여 코드에 직접 기여할 수도 있습니다 .



Vultr VPS에 액세스하는 방법

Vultr VPS에 액세스하는 방법

Vultr은 VPS에 액세스하여 구성, 설치 및 사용하는 여러 가지 방법을 제공합니다. 액세스 자격 증명 VPS ar의 기본 액세스 자격 증명

VirtIO 드라이버가있는 Windows 사용자 지정 ISO

VirtIO 드라이버가있는 Windows 사용자 지정 ISO

Windows ISO 빌드 (서버 버전 만 해당) Windows 용 최신 바이너리 VirtIO 드라이버를 ISO 파일로 패키지하여

베어 메탈의 커스텀 ISO

베어 메탈의 커스텀 ISO

소개 Vultr에는 현재 맞춤형 ISO를 업로드하여 베어 메탈에 마운트 할 수있는 시스템이 없습니다. 그러나 이것은 요 중지하지 않습니다

Windows Server에서 시간 수정

Windows Server에서 시간 수정

기본적으로 Windows Server 2012가 설치된 Vultr VPS의 시스템 시간은 UTC 시간대로 설정되어 있습니다. 시간대는 원하는대로 변경할 수 있지만 변경할 수는 없습니다.

Vultr 시작 스크립트를 사용하여 Ubuntu 16 업데이트 자동화

Vultr 시작 스크립트를 사용하여 Ubuntu 16 업데이트 자동화

Ubuntu 16 이상은 시스템 타이머를 사용하여 apt와 관련된 주기적 작업 (예 : 패키지 목록 업데이트 및 무인 업그레이드 적용)을 수행합니다. 티

싱글 사인온

싱글 사인온

SSO (Single Sign-On) 기능을 사용하여 회사 로그인 시스템을 Vultrs 계정 시스템과 통합 할 수 있습니다. 비밀번호 관리를 단순화하는 SSO

Vultr 방화벽

Vultr 방화벽

Vultr은 하나 이상의 컴퓨팅 인스턴스를 보호 할 수있는 웹 기반 방화벽 솔루션을 제공합니다. 서버에 방화벽 규칙 세트를 마련

VPS에서 IPv6 구성

VPS에서 IPv6 구성

이러한 각 예는 2001 : db8 : 1000 :: / 64의 IPv6 서브넷을 가정합니다. 할당 된 서브넷으로 업데이트해야합니다. 우리는 usin

Vultr에 OS ISO를 업로드하기위한 요구 사항

Vultr에 OS ISO를 업로드하기위한 요구 사항

Vultr은 선택할 수있는 다양한 운영 체제를 제공합니다. 그러나 때로는 Kal과 같은 사용자 정의 운영 체제 ISO를 업로드 할 수도 있습니다.

BGP 공지에 대한 승인 서 예

BGP 공지에 대한 승인 서 예

BGP 알림에 대한 권한을 요청할 때 다음 템플릿을 사용하십시오. 승인 서한 [날짜]

Vultr 제어판에서 역방향 DNS 또는 PTR 레코드를 만드는 방법

Vultr 제어판에서 역방향 DNS 또는 PTR 레코드를 만드는 방법

Vultr 역방향 DNS 소개 인스턴스 IP 주소에 PTR 또는 역방향 DNS 레코드를 추가하려면 아래에 설명 된 단계를 수행해야합니다.

Ubuntu 12.04에 Nginx + PHP FPM + 캐싱 + MySQL 설치

Ubuntu 12.04에 Nginx + PHP FPM + 캐싱 + MySQL 설치

아마도 많은 사람들이 Vultr VPS를 웹 서버로 사용할 것입니다. Nginx를 웹 서버로 사용하는 것이 좋습니다. 이 주제에서는

VPS를위한 모니터링 솔루션

VPS를위한 모니터링 솔루션

이 기사에서는 Vultr 서버에 사용할 수있는 모니터링 솔루션에 대해 설명합니다. 운영 체제 선택에 따라

SSH 키는 어떻게 생성합니까?

SSH 키는 어떻게 생성합니까?

SSH 키를 사용하면 비밀번호없이 서버에 로그인 할 수 있습니다. 설치 과정에서 SSH 키를 서버에 자동으로 추가 할 수 있습니다.

VPS에 보조 IPv4 주소 추가

VPS에 보조 IPv4 주소 추가

이 자습서에서는 Vultr VPS에서 추가 IPv4 주소를 설정하는 방법에 대해 설명합니다. VPS의 기본 IP 주소는 1.2.3.4입니다.

Windows Server 인스턴스에서 Windows Audio 활성화

Windows Server 인스턴스에서 Windows Audio 활성화

참고 :이 가이드는 Windows 2012 R2 및 Windows 2016 인스턴스에 적용됩니다. Windows 서버에는 기본적으로 Windows Audio 서비스가 활성화되어 있지 않습니다.

Vultr를 사용하여 가상 서버 복제

Vultr를 사용하여 가상 서버 복제

경우에 따라 스케일링 목적으로 또는 예를 들어 서버 영역을 변경하기 위해 가상 서버를 복제해야합니다. Vultr에서 이것은 쉽습니다.

Vultr VPS에서 CoreOS 실행

Vultr VPS에서 CoreOS 실행

읽어보십시오 : Vultr은 이제 주문 페이지에서 CoreOS를 제공합니다.이 안내서는 CoreOS를 수동으로 설정하는 방법을 설명합니다. 이 지침은 달리기를 안내합니다.

Vultr에서 BGP 구성

Vultr에서 BGP 구성

Vultrs BGP 기능을 사용하면 고유 한 IP 공간을 확보하여 모든 위치에서 사용할 수 있습니다. 시작하기 BGP를 사용하려면 다음이 필요합니다.

드라이버 업데이트 설치 후 Windows VPS 복구

드라이버 업데이트 설치 후 Windows VPS 복구

Microsoft는 최근 Windows 업데이트를 통해 Windows를 실행하는 Vultr VPS 인스턴스가 제대로 부팅되지 못하게하는 드라이버를 출시했습니다. 이러한 드라이버는 다음과 같습니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.