本文整理匯總了Golang中github.com/aws/aws-sdk-go/aws/credentials.NewEnvCredentials函數的典型用法代碼示例。如果您正苦於以下問題:Golang NewEnvCredentials函數的具體用法?Golang NewEnvCredentials怎麽用?Golang NewEnvCredentials使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了NewEnvCredentials函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: TestDynamoDBHABackend
func TestDynamoDBHABackend(t *testing.T) {
if os.Getenv("AWS_ACCESS_KEY_ID") == "" || os.Getenv("AWS_SECRET_ACCESS_KEY") == "" {
t.SkipNow()
}
creds, err := credentials.NewEnvCredentials().Get()
if err != nil {
t.Fatalf("err: %v", err)
}
// If the variable is empty or doesn't exist, the default
// AWS endpoints will be used
endpoint := os.Getenv("AWS_DYNAMODB_ENDPOINT")
region := os.Getenv("AWS_DEFAULT_REGION")
if region == "" {
region = "us-east-1"
}
conn := dynamodb.New(session.New(&aws.Config{
Credentials: credentials.NewEnvCredentials(),
Endpoint: aws.String(endpoint),
Region: aws.String(region),
}))
var randInt = rand.New(rand.NewSource(time.Now().UnixNano())).Int()
table := fmt.Sprintf("vault-dynamodb-testacc-%d", randInt)
defer func() {
conn.DeleteTable(&dynamodb.DeleteTableInput{
TableName: aws.String(table),
})
}()
logger := logformat.NewVaultLogger(log.LevelTrace)
b, err := NewBackend("dynamodb", logger, map[string]string{
"access_key": creds.AccessKeyID,
"secret_key": creds.SecretAccessKey,
"session_token": creds.SessionToken,
"table": table,
})
if err != nil {
t.Fatalf("err: %s", err)
}
ha, ok := b.(HABackend)
if !ok {
t.Fatalf("dynamodb does not implement HABackend")
}
testHABackend(t, ha, ha)
}
示例2: elbDNSName
func elbDNSName(c *conf) string {
//weirdness around how aws handles credentials
os.Setenv("AWS_ACCESS_KEY_ID", c.awsAccessKey)
os.Setenv("AWS_SECRET_ACCESS_KEY", c.awsSecretKey)
svc := elb.New(
session.New(
&aws.Config{
Region: aws.String(c.awsRegion),
Credentials: credentials.NewEnvCredentials(),
},
),
)
params := &elb.DescribeLoadBalancersInput{
LoadBalancerNames: []*string{
aws.String(c.elbName), // Required
},
}
resp, err := svc.DescribeLoadBalancers(params)
if err != nil {
log.Fatal(err)
}
return *resp.LoadBalancerDescriptions[0].DNSName
}
示例3: main
func main() {
flag.StringVar(&streamName, "stream", "mystream", "what stream to tail")
flag.StringVar(&shardName, "shard", "shardId-000000000000", "what shard to tail")
flag.IntVar(&delayTime, "delay", 5, "time to sleep between GetRecord calls")
flag.Parse()
println(fmt.Sprintf("Working on kinesis stream: %s:%s", streamName, shardName))
creds := credentials.NewEnvCredentials()
config = aws.Config{}
config.Credentials = creds
config.Region = aws.String("us-east-1")
// TODO, ensure we can load the region from ENV variables.
// Bypass the error now and just use us-east-1
if *defaults.DefaultConfig.Region == "" {
println("Could not find AWS Region in ENV. Please configure your ENV for AWS access")
//os.Exit(1)
}
listStreams()
describeStream(streamName)
watchStream(streamName, shardName)
}
示例4: GetAWSCreds
// GetAWSCreds returns the appropriate value as the need arises.
//
// evaluated in the following order
// 1. input variable
// 2. Environment variable
// 3. IAM Role
//
// "/.aws/credentials" necessary item increased about that, so it isn't used.
func (c *Config) GetAWSCreds() (*credentials.Credentials, error) {
var creds *credentials.Credentials
var err error
err = nil
// 1. input variable used
if c.Aws.Accesskey != "" && c.Aws.SecretKey != "" {
creds = credentials.NewStaticCredentials(c.Aws.Accesskey, c.Aws.SecretKey, "")
creds.Expire()
_, err = creds.Get()
}
if err != nil {
// 2. Environment variable used
creds = credentials.NewEnvCredentials()
creds.Expire()
_, err = creds.Get()
if err != nil {
// 3. IAM Role used
creds = credentials.NewCredentials(&ec2rolecreds.EC2RoleProvider{})
creds.Expire()
_, err = creds.Get()
}
}
return creds, err
}
示例5: NewSNSPublisher
// NewSNSPublisher will initiate the SNS client.
// If no credentials are passed in with the config,
// the publisher is instantiated with the AWS_ACCESS_KEY
// and the AWS_SECRET_KEY environment variables.
func NewSNSPublisher(cfg *config.SNS) (*SNSPublisher, error) {
p := &SNSPublisher{}
if cfg.Topic == "" {
return p, errors.New("SNS topic name is required")
}
p.topic = cfg.Topic
if cfg.Region == "" {
return p, errors.New("SNS region is required")
}
var creds *credentials.Credentials
if cfg.AccessKey != "" {
creds = credentials.NewStaticCredentials(cfg.AccessKey, cfg.SecretKey, "")
} else {
creds = credentials.NewEnvCredentials()
}
p.sns = sns.New(session.New(&aws.Config{
Credentials: creds,
Region: &cfg.Region,
}))
return p, nil
}
示例6: Svc
// Svc configures the DynamoDB service to use
func Svc(opts config.Options) *dynamodb.DynamoDB {
awsConfig := &aws.Config{Region: aws.String(opts.Storage.AWS.Region)}
// If a session was passed... (AWS Lambda does this)
if opts.Storage.AWS.SessionToken != "" {
os.Setenv("AWS_SESSION_TOKEN", opts.Storage.AWS.SessionToken)
}
// Look in a variety of places for AWS credentials. First, try the credentials file set by AWS CLI tool.
// Note the empty string instructs to look under default file path (different based on OS).
// This file can have multiple profiles and a default profile will be used unless otherwise configured.
// See: https://godoc.org/github.com/aws/aws-sdk-go/aws/credentials#SharedCredentialsProvider
creds := credentials.NewSharedCredentials("", opts.Storage.AWS.CredProfile)
_, err := creds.Get()
// If that failed, try environment variables.
if err != nil {
// The following are checked:
// Access Key ID: AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY
// Secret Access Key: AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY
creds = credentials.NewEnvCredentials()
}
// If credentials were passed via config, then use those. They will take priority over other methods.
if opts.Storage.AWS.AccessKeyID != "" && opts.Storage.AWS.SecretAccessKey != "" {
creds = credentials.NewStaticCredentials(opts.Storage.AWS.AccessKeyID, opts.Storage.AWS.SecretAccessKey, "")
}
awsConfig.Credentials = creds
return dynamodb.New(session.New(awsConfig))
}
示例7: TestMigrateStreams
func TestMigrateStreams(t *testing.T) {
if os.Getenv("AWS_ACCESS_KEY_ID") == "" || os.Getenv("AWS_SECRET_ACCESS_KEY") == "" {
Log.Printf("WARNING: NO AWS CREDS SPECIFIED, SKIPPING MIGRATIONS TEST")
return
}
config := &aws.Config{
Credentials: credentials.NewEnvCredentials(),
Region: aws.String("us-east-1"),
}
client := kinesis.New(session.New(config))
sm := StreamMigrator{
Streams: []kinesis.CreateStreamInput{
kinesis.CreateStreamInput{
StreamName: aws.String(testDomain),
ShardCount: aws.Int64(1),
},
},
Client: client,
Timeout: 30,
}
sm.Migrate()
sm.Migrate()
}
示例8: MustClient
// MustClient will use the cache cluster ID to describe
// the cache cluster and instantiate a memcache.Client
// with the cache nodes returned from AWS.
func (e *ElastiCache) MustClient() *memcache.Client {
var creds *credentials.Credentials
if e.AccessKey != "" {
creds = credentials.NewStaticCredentials(e.AccessKey, e.SecretKey, "")
} else {
creds = credentials.NewEnvCredentials()
}
ecclient := elasticache.New(session.New(&aws.Config{
Credentials: creds,
Region: &e.Region,
}))
resp, err := ecclient.DescribeCacheClusters(&elasticache.DescribeCacheClustersInput{
CacheClusterId: &e.ClusterID,
ShowCacheNodeInfo: aws.Bool(true),
})
if err != nil {
log.Fatalf("unable to describe cache cluster: %s", err)
}
var nodes []string
for _, cluster := range resp.CacheClusters {
for _, cnode := range cluster.CacheNodes {
addr := fmt.Sprintf("%s:%d", *cnode.Endpoint.Address, *cnode.Endpoint.Port)
nodes = append(nodes, addr)
}
}
return memcache.New(nodes...)
}
示例9: main
func main() {
var err error
// connect to the database
dbconn, err = sql.Open("postgres", PACKAGEBUG_DB)
if err != nil {
log.Fatal(err)
}
// make sure the database up
err = dbconn.Ping()
if err != nil {
log.Fatal(err)
}
// set up aws SDK credentials & config
cred := credentials.NewEnvCredentials()
_, err = cred.Get()
if err != nil {
log.Fatal(err)
}
config := aws.NewConfig()
config.Credentials = cred
config.Endpoint = &PACKAGEBUG_SQS_ENDPOINT
config.Region = &PACKAGEBUG_SQS_REGION
sqsconn = sqs.New(config)
// dispatch jobs once a day
for {
<-time.After(24 * time.Hour)
go dispatchJobs()
}
}
示例10: addToLambda
func addToLambda(dir string) error {
desc, err := util.ReadTestDescription(dir)
if err != nil {
return err
}
var zipContents []byte
if desc.Runtime == "java8" {
zipContents, err = ioutil.ReadFile(filepath.Join(dir, "test-build.jar"))
if err != nil {
return err
}
} else {
zipContents, err = makeZip(dir)
if err != nil {
return err
}
}
s := session.New(&aws.Config{Region: aws.String("us-east-1"), Credentials: credentials.NewEnvCredentials()})
l := lambda.New(s)
err = createLambdaFunction(l, zipContents, desc.Runtime, lambdaRole, desc.Name, desc.Handler, desc.Timeout)
return err
}
示例11: Init
func (s *S3) Init() error {
if s.Bucket == "" {
return errors.New("S3 bucket not set")
} else if s.Key == "" {
return errors.New("S3 key not set")
}
if s.Region == "" {
s.Region = "ap-southeast-2"
}
creds := credentials.AnonymousCredentials
if s.Access != "" {
creds = credentials.NewStaticCredentials(s.Access, s.Secret, "")
} else if os.Getenv("AWS_ACCESS_KEY") != "" {
creds = credentials.NewEnvCredentials()
}
config := &aws.Config{
Credentials: creds,
Region: &s.Region,
}
s.client = s3.New(session.New(config))
//TODO include this? maybe given access to bucket after init
// resp, err := s.client.HeadBucketRequest(&s3.HeadBucketInput{Bucket: &s.Bucket})
// if err != nil {}
//apply defaults
if s.Interval == 0 {
s.Interval = 5 * time.Minute
}
return nil
}
示例12: NewKinesisRelay
// NewKinesisRelay gets the relay started.
func NewKinesisRelay(l Logger, c ConfigValues) *KinesisRelay {
l.Info.Println("Beginning to start kinesis")
// New KinesisRelay setup.
kr := new(KinesisRelay)
kr.logger = l
kr.config = c
// Setup the AWS config.
creds := credentials.NewEnvCredentials()
kr.awsConfig = aws.Config{}
kr.awsConfig.Credentials = creds
// TODO - handle this via ENV variables as well.
kr.awsConfig.Region = aws.String(kr.config.Kinesis.Region)
// TODO configure the channel better in the future.
kr.Pipe = make(chan string, 100)
// Prep the stream.
l.Trace.Printf("We want to use stream: %s", kr.config.Kinesis.StreamName)
kr.createStreamIfNotExists(kr.config.Kinesis.StreamName)
l.Info.Println("Done starting kinesis relay")
return kr
}
示例13: main
func main() {
if len(os.Args) != 3 {
log.Fatal("wrong number of arguments")
}
src, _ := os.Args[1], os.Args[2]
creds := credentials.NewEnvCredentials()
if _, err := creds.Get(); err != nil {
log.Fatal(err)
}
svc := s3.New(&aws.Config{
Credentials: creds,
Region: "us-east-2",
Endpoint: "s3.amazonaws.com",
S3ForcePathStyle: true,
})
uploader := s3manager.NewUploader(&s3manager.UploadOptions{S3: svc})
watcher, err := fsnotify.NewWatcher()
if err != nil {
log.Fatal(err)
}
defer watcher.Close()
done := make(chan bool)
go func() {
for {
select {
case event := <-watcher.Events:
log.Println("event:", event)
switch event.Op {
case fsnotify.Create:
handleCreate(watcher, uploader, event.Name)
case fsnotify.Write:
log.Println("modified file:", event.Name)
}
case err := <-watcher.Errors:
log.Println("error:", err)
}
}
}()
err = filepath.Walk(src, func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
log.Println(path)
return watcher.Add(path)
}
return nil
})
if err != nil {
log.Fatal(err)
}
<-done
}
示例14: loadConfig
func loadConfig() *aws.Config {
region := os.Getenv("AWS_REGION")
if region == "" {
region = "eu-west-1"
}
creds := credentials.NewEnvCredentials()
return aws.NewConfig().WithCredentials(creds).WithRegion(region)
}
示例15: createConfig
func createConfig() *aws.Config {
config := aws.NewConfig()
config.WithCredentials(credentials.NewEnvCredentials())
config.WithRegion(*region)
if *logging {
config.WithLogLevel(aws.LogDebugWithHTTPBody)
}
return config
}