aws-sdk-go에서 지정한 간단한 파일의Credential을 이용하여 접근

7006 단어 GoAWS
공식 버전은 Comming Soon입니다.
※ aws-sdk 개발 추진에 따라 당초 기재된 방법으로 접근할 수 없어 새로운 방법이 업데이트되었습니다.

전제 조건


~/.aws/credentials
파일에 대한 ID, 시크릿 정보가 설정되어 있습니다.
(credential 파일 지정은 방법 매개 변수를 통해 할 수 있지만, 기본값은 상기 파일로 설정합니다)
~/.aws/credentials
[test]
aws_access_key_id = XXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYY

메서드

NewSharedCredentials.
aws-sdk-go의 New Shared Credentials 방법(GoDoc)
cred, _ := credentials.NewSharedCredentials("", profile_name)
svc := ec2.New(&aws.Config{Credentials: cred, Region: "ap-northeast-1"})

샘플 코드


위에서 설명한 사용 약관을 지정합니다
임의의 Name 태그로 필터링된DescriveInstances에서 Name 태그, InstanceID, Status를 반환하는 스크립트를 만들었습니다.
아래의 느낌입니다.(※ 잘못된 처리는 하지 않았습니다.)
gist
descrive_ec2_instances.go

package main

import (
    "fmt"
    "github.com/awslabs/aws-sdk-go/aws"
    "github.com/awslabs/aws-sdk-go/aws/credentials"
    "github.com/awslabs/aws-sdk-go/service/ec2"
)

func main() {
    profile := "test" // your profile name
    name := "*test*"     // search string (NameTag)

    svc := ec2.New(&aws.Config{
        Credentials: credentials.NewSharedCredentials("", profile),
        Region:      "ap-northeast-1",
    })

    params := &ec2.DescribeInstancesInput{
        Filters: []*ec2.Filter{
            &ec2.Filter{
                Name: aws.String("tag:Name"),
                Values: []*string{
                    aws.String(name),
                },
            },
        },
    }

    res, _ := svc.DescribeInstances(params)

    for _, i := range res.Reservations[0].Instances {
        var nt string
        for _, t := range i.Tags {
            if *t.Key == "Name" {
                nt = *t.Value
                break
            }
        }
        fmt.Println(nt, *i.InstanceID, *i.State.Name)
    }
}
그러면 지정된 Profile Credential에 따라 실행됩니다.
기대된다!

좋은 웹페이지 즐겨찾기