diff --git a/aws-env.go b/aws-env.go index 9bbd62d..e53678a 100644 --- a/aws-env.go +++ b/aws-env.go @@ -3,12 +3,14 @@ package main import ( "flag" "fmt" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/ssm" "log" "os" "strings" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/endpoints" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/ssm" ) const ( @@ -37,8 +39,23 @@ func main() { ExportVariables(client, os.Getenv("AWS_ENV_PATH"), *recursivePtr, *format, "") } +func ssmEndpointResolver(service, region string, optFns ...func(*endpoints.Options)) (endpoints.ResolvedEndpoint, error) { + ssmEndpoint := os.Getenv("AWS_SSM_ENDPOINT") + + if service == endpoints.SsmServiceID && len(ssmEndpoint) > 0 { + return endpoints.ResolvedEndpoint{ + URL: os.Getenv("AWS_SSM_ENDPOINT"), + }, nil + } + + return endpoints.DefaultResolver().EndpointFor(service, region, optFns...) +} + func CreateSession() *session.Session { - return session.Must(session.NewSession()) + return session.Must(session.NewSession(&aws.Config{ + Region: aws.String(os.Getenv("AWS_REGION")), + EndpointResolver: endpoints.ResolverFunc(ssmEndpointResolver), + })) } func CreateClient(sess *session.Session) *ssm.SSM { diff --git a/bin/aws-env-darwin-386 b/bin/aws-env-darwin-386 index 86a32a8..dad2ce7 100755 Binary files a/bin/aws-env-darwin-386 and b/bin/aws-env-darwin-386 differ diff --git a/bin/aws-env-darwin-amd64 b/bin/aws-env-darwin-amd64 index 2795dc6..dc3a97b 100755 Binary files a/bin/aws-env-darwin-amd64 and b/bin/aws-env-darwin-amd64 differ diff --git a/bin/aws-env-linux-386 b/bin/aws-env-linux-386 index ccb02bb..ad589b4 100755 Binary files a/bin/aws-env-linux-386 and b/bin/aws-env-linux-386 differ diff --git a/bin/aws-env-linux-amd64 b/bin/aws-env-linux-amd64 index 8e12f38..1517a82 100755 Binary files a/bin/aws-env-linux-amd64 and b/bin/aws-env-linux-amd64 differ diff --git a/bin/aws-env-windows-386 b/bin/aws-env-windows-386 index 9fefa9a..6ebc0df 100755 Binary files a/bin/aws-env-windows-386 and b/bin/aws-env-windows-386 differ diff --git a/bin/aws-env-windows-amd64 b/bin/aws-env-windows-amd64 index 380f90f..5edd5e4 100755 Binary files a/bin/aws-env-windows-amd64 and b/bin/aws-env-windows-amd64 differ