메뉴

문서정보

소개

AWS GoLang SDK를 이용해서 AWS의 전체 리전(region)목록을 가져오는 프로그램을 개발하기로 했다. 개발한 프로그램은 최신의 AWS Region 정보를 보여주는 Joinc Wiki Plugin 개발에 사용 한다. 코드는 아래와 같다. 설명은 주석으로 대신한다.
package main

import (
    "fmt"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/awserr"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/ec2"
)

func main() {
    // AWS Session을 만든다. API를 호출할 리전은 api-northeast-2(서울)이다.
    // 사용할 profile은 ro 다.
    // ro 프로파일의 자세한 내용은 아래에서 설명한다.
    sess, _ := session.NewSessionWithOptions(session.Options{
        Config: aws.Config{
            Region: aws.String("ap-northeast-2"),
        },
        Profile: "ro",
    })

    DescribeRegions(*sess)
}

func DescribeRegions(sess session.Session) {
    svc := ec2.New(&sess)
    result, err := svc.DescribeRegions(&ec2.DescribeRegionsInput{})
    if err != nil {
        if aerr, ok := err.(awserr.Error); ok {
            switch aerr.Code() {
            default:
                fmt.Println(aerr.Error())
            }
        } else {
            fmt.Println(err.Error())
        }
        return
    }
    fmt.Println(result)
    for k, v := range result.Regions {
        fmt.Println(k, v)
    }
}

readonly 권한을 가지는 프로파일 생성

joinc wiki용 플러그인 개발