cloud/awscloud: add ec2metadata client
This commit is contained in:
parent
e10424de2f
commit
05a45ed233
2 changed files with 26 additions and 10 deletions
|
|
@ -474,7 +474,7 @@ func main() {
|
|||
Store: store,
|
||||
Output: output,
|
||||
OSBuildExecutor: ExecutorConfiguration{
|
||||
Type: config.OSBuildExecutor.Type,
|
||||
Type: config.OSBuildExecutor.Type,
|
||||
},
|
||||
KojiServers: kojiServers,
|
||||
GCPConfig: gcpConfig,
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import (
|
|||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/credentials"
|
||||
"github.com/aws/aws-sdk-go/aws/ec2metadata"
|
||||
"github.com/aws/aws-sdk-go/aws/request"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
|
|
@ -19,9 +20,10 @@ import (
|
|||
)
|
||||
|
||||
type AWS struct {
|
||||
uploader *s3manager.Uploader
|
||||
ec2 *ec2.EC2
|
||||
s3 *s3.S3
|
||||
uploader *s3manager.Uploader
|
||||
ec2 *ec2.EC2
|
||||
ec2metadata *ec2metadata.EC2Metadata
|
||||
s3 *s3.S3
|
||||
}
|
||||
|
||||
// Create a new session from the credentials and the region and returns an *AWS object initialized with it.
|
||||
|
|
@ -36,9 +38,10 @@ func newAwsFromCreds(creds *credentials.Credentials, region string) (*AWS, error
|
|||
}
|
||||
|
||||
return &AWS{
|
||||
uploader: s3manager.NewUploader(sess),
|
||||
ec2: ec2.New(sess),
|
||||
s3: s3.New(sess),
|
||||
uploader: s3manager.NewUploader(sess),
|
||||
ec2: ec2.New(sess),
|
||||
ec2metadata: ec2metadata.New(sess),
|
||||
s3: s3.New(sess),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
@ -66,6 +69,18 @@ func NewDefault(region string) (*AWS, error) {
|
|||
return newAwsFromCreds(nil, region)
|
||||
}
|
||||
|
||||
func RegionFromInstanceMetadata() (string, error) {
|
||||
sess, err := session.NewSession()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
identity, err := ec2metadata.New(sess).GetInstanceIdentityDocument()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return identity.Region, nil
|
||||
}
|
||||
|
||||
// Create a new session from the credentials and the region and returns an *AWS object initialized with it.
|
||||
func newAwsFromCredsWithEndpoint(creds *credentials.Credentials, region, endpoint, caBundle string, skipSSLVerification bool) (*AWS, error) {
|
||||
// Create a Session with a custom region
|
||||
|
|
@ -102,9 +117,10 @@ func newAwsFromCredsWithEndpoint(creds *credentials.Credentials, region, endpoin
|
|||
}
|
||||
|
||||
return &AWS{
|
||||
uploader: s3manager.NewUploader(sess),
|
||||
ec2: ec2.New(sess),
|
||||
s3: s3.New(sess),
|
||||
uploader: s3manager.NewUploader(sess),
|
||||
ec2: ec2.New(sess),
|
||||
ec2metadata: ec2metadata.New(sess),
|
||||
s3: s3.New(sess),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue