mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-05 11:11:13 +00:00
94 lines
3.2 KiB
Markdown
94 lines
3.2 KiB
Markdown
# AWS SDK for Go
|
|
|
|
[](http://docs.aws.amazon.com/sdk-for-go/api)
|
|
[](https://gitter.im/aws/aws-sdk-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
[](https://travis-ci.org/aws/aws-sdk-go)
|
|
[](https://github.com/aws/aws-sdk-go/blob/master/LICENSE.txt)
|
|
|
|
aws-sdk-go is the official AWS SDK for the Go programming language.
|
|
|
|
Checkout our [release notes](https://github.com/aws/aws-sdk-go/releases) for information about the latest bug fixes, updates, and features added to the SDK.
|
|
|
|
## Installing
|
|
|
|
If you are using Go 1.5 with the `GO15VENDOREXPERIMENT=1` vendoring flag you can use the following to get the SDK as the SDK's runtime dependancies are vendored in the `vendor` folder.
|
|
|
|
$ go get -u github.com/aws/aws-sdk-go
|
|
|
|
Otherwise you'll need to tell Go to get the SDK and all of its dependancies.
|
|
|
|
$ go get -u github.com/aws/aws-sdk-go/...
|
|
|
|
## Configuring Credentials
|
|
|
|
Before using the SDK, ensure that you've configured credentials. The best
|
|
way to configure credentials on a development machine is to use the
|
|
`~/.aws/credentials` file, which might look like:
|
|
|
|
```
|
|
[default]
|
|
aws_access_key_id = AKID1234567890
|
|
aws_secret_access_key = MY-SECRET-KEY
|
|
```
|
|
|
|
You can learn more about the credentials file from this
|
|
[blog post](http://blogs.aws.amazon.com/security/post/Tx3D6U6WSFGOK2H/A-New-and-Standardized-Way-to-Manage-Credentials-in-the-AWS-SDKs).
|
|
|
|
Alternatively, you can set the following environment variables:
|
|
|
|
```
|
|
AWS_ACCESS_KEY_ID=AKID1234567890
|
|
AWS_SECRET_ACCESS_KEY=MY-SECRET-KEY
|
|
```
|
|
|
|
## Using the Go SDK
|
|
|
|
To use a service in the SDK, create a service variable by calling the `New()`
|
|
function. Once you have a service client, you can call API operations which each
|
|
return response data and a possible error.
|
|
|
|
To list a set of instance IDs from EC2, you could run:
|
|
|
|
```go
|
|
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/ec2"
|
|
)
|
|
|
|
func main() {
|
|
// Create an EC2 service object in the "us-west-2" region
|
|
// Note that you can also configure your region globally by
|
|
// exporting the AWS_REGION environment variable
|
|
svc := ec2.New(session.New(), &aws.Config{Region: aws.String("us-west-2")})
|
|
|
|
// Call the DescribeInstances Operation
|
|
resp, err := svc.DescribeInstances(nil)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// resp has all of the response data, pull out instance IDs:
|
|
fmt.Println("> Number of reservation sets: ", len(resp.Reservations))
|
|
for idx, res := range resp.Reservations {
|
|
fmt.Println(" > Number of instances: ", len(res.Instances))
|
|
for _, inst := range resp.Reservations[idx].Instances {
|
|
fmt.Println(" - Instance ID: ", *inst.InstanceId)
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
You can find more information and operations in our
|
|
[API documentation](http://docs.aws.amazon.com/sdk-for-go/api/).
|
|
|
|
## License
|
|
|
|
This SDK is distributed under the
|
|
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0),
|
|
see LICENSE.txt and NOTICE.txt for more information.
|