You've already forked golang-saas-starter-kit
mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-06-15 00:15:15 +02:00
pull aws region from ec2 metadata
This commit is contained in:
@ -6,7 +6,6 @@ import (
|
||||
"encoding/json"
|
||||
"expvar"
|
||||
"fmt"
|
||||
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
@ -19,6 +18,8 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web"
|
||||
"github.com/aws/aws-sdk-go/aws/ec2metadata"
|
||||
"geeks-accelerator/oss/saas-starter-kit/cmd/web-api/docs"
|
||||
"geeks-accelerator/oss/saas-starter-kit/cmd/web-api/handlers"
|
||||
"geeks-accelerator/oss/saas-starter-kit/internal/mid"
|
||||
@ -121,7 +122,7 @@ func main() {
|
||||
Aws struct {
|
||||
AccessKeyID string `envconfig:"AWS_ACCESS_KEY_ID"` // WEB_API_AWS_AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY_ID
|
||||
SecretAccessKey string `envconfig:"AWS_SECRET_ACCESS_KEY" json:"-"` // don't print
|
||||
Region string `default:"us-east-1" envconfig:"AWS_REGION"`
|
||||
Region string `default:"us-west-2" envconfig:"AWS_REGION"`
|
||||
S3BucketPrivate string `envconfig:"S3_BUCKET_PRIVATE"`
|
||||
S3BucketPublic string `envconfig:"S3_BUCKET_PUBLIC"`
|
||||
SecretsManagerConfigPrefix string `default:"" envconfig:"SECRETS_MANAGER_CONFIG_PREFIX"`
|
||||
@ -168,6 +169,20 @@ func main() {
|
||||
if cfg.Aws.UseRole {
|
||||
cfg.Aws.AccessKeyID = ""
|
||||
cfg.Aws.SecretAccessKey = ""
|
||||
|
||||
// Get an AWS session from an implicit source if no explicit
|
||||
// configuration is provided. This is useful for taking advantage of
|
||||
// EC2/ECS instance roles.
|
||||
if cfg.Aws.Region == "" {
|
||||
sess := session.Must(session.NewSession())
|
||||
md := ec2metadata.New(sess)
|
||||
|
||||
var err error
|
||||
cfg.Aws.Region, err = md.Region()
|
||||
if err != nil {
|
||||
log.Fatalf("main : Load region of ecs metadata : %+v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set the default AWS Secrets Manager prefix used for name to store config files that will be persisted across
|
||||
|
Reference in New Issue
Block a user