aws-sdk-go에서 지정한 간단한 파일의Credential을 이용하여 접근
※ 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에 따라 실행됩니다.기대된다!
Reference
이 문제에 관하여(aws-sdk-go에서 지정한 간단한 파일의Credential을 이용하여 접근), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/simeji/items/17f738a4800e9a18888d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)