diff --git a/builder/amazon/common/access_config.go b/builder/amazon/common/access_config.go index 10fba2d79..aa974f29c 100644 --- a/builder/amazon/common/access_config.go +++ b/builder/amazon/common/access_config.go @@ -7,6 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/ec2metadata" "github.com/aws/aws-sdk-go/aws/session" "github.com/hashicorp/packer/template/interpolate" ) @@ -91,7 +92,15 @@ func (c *AccessConfig) Region() (string, error) { return c.RawRegion, nil } - return "", nil + sess := session.New() + ec2meta := ec2metadata.New(sess) + identity, err := ec2meta.GetInstanceIdentityDocument() + if err != nil { + log.Println("Error getting region from metadata service, "+ + "probably because we're not running on AWS.", err) + return "", nil + } + return identity.Region, nil } func (c *AccessConfig) Prepare(ctx *interpolate.Context) []error {