diff --git a/pkg/config/config.go b/pkg/config/config.go index c19246ca..cf060b95 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,8 @@ 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) + log.Debug().Str("Retrieved AWS region from queue-url: \"%s\"", config.AWSRegion) sess.Config.Region = &config.AWSRegion } else { config.AWSRegion = *sess.Config.Region @@ -390,3 +392,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 "" +}