Skip to content

Instantly share code, notes, and snippets.

@jim-my
Forked from eferro/_aws_golang_examples.md
Created September 3, 2020 11:42
Show Gist options
  • Save jim-my/52b35d8864a71b7219486e1008c9c5cb to your computer and use it in GitHub Desktop.
Save jim-my/52b35d8864a71b7219486e1008c9c5cb to your computer and use it in GitHub Desktop.

Revisions

  1. @eferro eferro revised this gist Aug 13, 2016. 1 changed file with 0 additions and 8 deletions.
    8 changes: 0 additions & 8 deletions ec2_list_instances_filtered.go
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,5 @@
    package main

    /* https://github.com/aws/aws-sdk-go/wiki */

    import (
    "fmt"
    "log"
    @@ -11,13 +9,7 @@ import (
    )

    func main() {
    /*
    export AWS_REGION=""
    export AWS_ACCESS_KEY_ID=""
    export AWS_SECRET_ACCESS_KEY=""*/

    ec2svc := ec2.New(session.New())

    params := &ec2.DescribeInstancesInput{
    Filters: []*ec2.Filter{
    {
  2. @eferro eferro renamed this gist Aug 13, 2016. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. @eferro eferro revised this gist Aug 13, 2016. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions _aws_golang_examples
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    ## AWS Golang SDK examples
  4. @eferro eferro revised this gist Aug 13, 2016. 1 changed file with 24 additions and 0 deletions.
    24 changes: 24 additions & 0 deletions sqs_list_queues.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    package main

    import (
    "fmt"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/sqs"
    )

    func main() {
    sqssvc := sqs.New(session.New())

    params := &sqs.ListQueuesInput{
    QueueNamePrefix: aws.String("prod-"),
    }
    sqs_resp, err := sqssvc.ListQueues(params)
    if err != nil {
    fmt.Println(err.Error())
    return
    }
    for _, url := range sqs_resp.QueueUrls {
    fmt.Println(*url)
    }
    }
  5. @eferro eferro revised this gist Aug 13, 2016. 1 changed file with 27 additions and 0 deletions.
    27 changes: 27 additions & 0 deletions sqs_list_queue_attribs.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    package main

    import (
    "fmt"
    "strconv"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/sqs"
    )

    func main() {
    sqssvc := sqs.New(session.New())
    params := &sqs.GetQueueAttributesInput{
    QueueUrl: aws.String("https://sqs.<region>.amazonaws.com/<acc_number>/<queue_name>"),
    AttributeNames: []*string{
    aws.String("ApproximateNumberOfMessages"),
    aws.String("ApproximateNumberOfMessagesDelayed"),
    aws.String("ApproximateNumberOfMessagesNotVisible"),
    },
    }
    resp, _ := sqssvc.GetQueueAttributes(params)
    for attrib, _ := range resp.Attributes {
    prop := resp.Attributes[attrib]
    i, _ := strconv.Atoi(*prop)
    fmt.Println(attrib, i)
    }
    }
  6. @eferro eferro revised this gist Aug 13, 2016. 1 changed file with 28 additions and 0 deletions.
    28 changes: 28 additions & 0 deletions s3_list_keys.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    package main

    import (
    "fmt"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
    )

    func main() {
    s3svc := s3.New(session.New())
    inputparams := &s3.ListObjectsInput{
    Bucket: aws.String("eferro-bucket"),
    MaxKeys: aws.Int64(10),
    }
    pageNum := 0
    s3svc.ListObjectsPages(inputparams, func(page *s3.ListObjectsOutput, lastPage bool) bool {
    fmt.Println("Page", pageNum)
    pageNum++
    for _, value := range page.Contents {
    fmt.Println(*value.Key)
    }
    fmt.Println("pageNum", pageNum, "lastPage", lastPage)

    // return if we should continue with the next page
    return true
    })
    }
  7. @eferro eferro revised this gist Aug 13, 2016. 1 changed file with 23 additions and 0 deletions.
    23 changes: 23 additions & 0 deletions s3_list_buckets.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    package main

    import (
    "fmt"

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

    func main() {
    s3svc := s3.New(session.New())
    result, err := s3svc.ListBuckets(&s3.ListBucketsInput{})
    if err != nil {
    fmt.Println("Failed to list buckets", err)
    return
    }

    fmt.Println("Buckets:")
    for _, bucket := range result.Buckets {
    fmt.Printf("%s : %s\n", aws.StringValue(bucket.Name), bucket.CreationDate)
    }
    }
  8. @eferro eferro created this gist Aug 13, 2016.
    45 changes: 45 additions & 0 deletions ec2_list_instances_filtered.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,45 @@
    package main

    /* https://github.com/aws/aws-sdk-go/wiki */

    import (
    "fmt"
    "log"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/ec2"
    )

    func main() {
    /*
    export AWS_REGION=""
    export AWS_ACCESS_KEY_ID=""
    export AWS_SECRET_ACCESS_KEY=""*/

    ec2svc := ec2.New(session.New())

    params := &ec2.DescribeInstancesInput{
    Filters: []*ec2.Filter{
    {
    Name: aws.String("tag:Environment"),
    Values: []*string{aws.String("prod")},
    },
    {
    Name: aws.String("instance-state-name"),
    Values: []*string{aws.String("running"), aws.String("pending")},
    },
    },
    }
    resp, err := ec2svc.DescribeInstances(params)
    if err != nil {
    fmt.Println("there was an error listing instances in", err.Error())
    log.Fatal(err.Error())
    }

    for idx, res := range resp.Reservations {
    fmt.Println(" > Reservation Id", *res.ReservationId, " Num Instances: ", len(res.Instances))
    for _, inst := range resp.Reservations[idx].Instances {
    fmt.Println(" - Instance ID: ", *inst.InstanceId)
    }
    }
    }