Skip to content

Instantly share code, notes, and snippets.

@mylons
Created February 24, 2017 19:18
Show Gist options
  • Select an option

  • Save mylons/a1162aa269d2ca27efdbc06a1afe4c15 to your computer and use it in GitHub Desktop.

Select an option

Save mylons/a1162aa269d2ca27efdbc06a1afe4c15 to your computer and use it in GitHub Desktop.
package main
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/rds"
"fmt"
)
func getTags(svc *rds.RDS, arn *string, c chan *rds.ListTagsForResourceOutput) {
params := &rds.ListTagsForResourceInput{
ResourceName: arn,
}
tags, err := svc.ListTagsForResource(params)
if err != nil {
fmt.Println(err.Error())
}
c <- tags
}
func main() {
sess, err := session.NewSessionWithOptions(session.Options{
Profile: "aws-account-name",
Config: aws.Config{Region: aws.String("us-west-2")},
})
svc := rds.New(sess)
resp, err := svc.DescribeDBInstances(&rds.DescribeDBInstancesInput{})
if err != nil {
fmt.Println(err.Error())
return
}
c := make(chan *rds.ListTagsForResourceOutput)
for _, dbInstance := range(resp.DBInstances) {
go getTags(svc, dbInstance.DBInstanceArn, c)
}
for elem := range(c) {
fmt.Println(elem)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment