I am new to Golang and AWS. I am trying to send SMS using AWS SNS. I have set Environment variable First then try send SMS.
export AWS_ACCESS_KEY_ID=AKIAIOSFODN..
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEM..
export AWS_DEFAULT_REGION=us-west-2
I tried to debug where i am getting wrong But always getting error MissingRegion: could not find region configuration
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/sns"
)
func main() {
fmt.Println("creating session")
sess := session.Must(session.NewSession())
fmt.Println("session created")
svc := sns.New(sess)
fmt.Println("service created")
params := &sns.PublishInput{
Message: aws.String("testing 123"),
PhoneNumber: aws.String("+14445556666"),
}
resp, err := svc.Publish(params)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(resp)
}
I am trying to do this since last 2 days.Please help me where i am going wrong.
You have to configure the SDK. To set just the region you would do something like
sess, err := session.NewSession(&aws.Config{
Region: aws.String("us-west-2")},
)
You can see full details on config here: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html
The Go SDK does not recognize the env variable AWS_DEFAULT_REGION
The region can be specified using the AWS_REGION
name as below
export AWS_REGION="us-west-2"
The other way is to explicitly pass the region while creating the session as per the answer by noisewaterphd
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With