From 39e134850c04595ab952cef1d9604e668daefb88 Mon Sep 17 00:00:00 2001 From: Brandon Wagner Date: Fri, 9 Apr 2021 13:57:29 -0500 Subject: [PATCH 1/2] fixed and improved region detection within queue url --- pkg/config/config.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkg/config/config.go b/pkg/config/config.go index c19246ca..40ca566c 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -20,6 +20,7 @@ import ( "strconv" "strings" + "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/aws/aws-sdk-go/aws/session" "github.com/rs/zerolog/log" ) @@ -189,7 +190,7 @@ func ParseCliArgs() (config Config, err error) { if config.AWSRegion != "" { sess.Config.Region = &config.AWSRegion } else if *sess.Config.Region == "" && config.QueueURL != "" { - config.AWSRegion = strings.Split(config.QueueURL, ".")[1] + config.AWSRegion = getRegionFromQueueURL(config.QueueURL) sess.Config.Region = &config.AWSRegion } else { config.AWSRegion = *sess.Config.Region @@ -390,3 +391,14 @@ func isConfigProvided(cliArgName string, envVarName string) bool { }) return cliArgProvided } + +func getRegionFromQueueURL(queueURL string) string { + for _, partition := range endpoints.DefaultPartitions() { + for regionID := range partition.Regions() { + if strings.Contains(queueURL, regionID) { + return regionID + } + } + } + return "" +} From 1c7db39a17c44ff9fcd4e835662faadc6dba5be3 Mon Sep 17 00:00:00 2001 From: Brandon Wagner Date: Fri, 9 Apr 2021 16:01:12 -0500 Subject: [PATCH 2/2] add debug log for queue-url region detectio n --- pkg/config/config.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/config/config.go b/pkg/config/config.go index 40ca566c..cf060b95 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -191,6 +191,7 @@ func ParseCliArgs() (config Config, err error) { sess.Config.Region = &config.AWSRegion } else if *sess.Config.Region == "" && config.QueueURL != "" { config.AWSRegion = getRegionFromQueueURL(config.QueueURL) + log.Debug().Str("Retrieved AWS region from queue-url: \"%s\"", config.AWSRegion) sess.Config.Region = &config.AWSRegion } else { config.AWSRegion = *sess.Config.Region