MissingRegion:在 golang 和 aws sns 中找不到区域配置

Ami*_*Upa 4 go amazon-web-services amazon-sns

我是 Golang 和 AWS 的新手。我正在尝试使用 AWS SNS 发送 SMS。我首先设置了环境变量,然后尝试发送短信。

export AWS_ACCESS_KEY_ID=AKIAIOSFODN..
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEM..
export AWS_DEFAULT_REGION=us-west-2
Run Code Online (Sandbox Code Playgroud)

我试图调试我出错的地方但总是收到错误 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)
}
Run Code Online (Sandbox Code Playgroud)

自过去 2 天以来,我一直在尝试这样做。请帮助我哪里出错了。

Pra*_*ham 14

Go SDK无法识别环境变量可以使用如下名称AWS_DEFAULT_REGION
指定区域AWS_REGION

export AWS_REGION="us-west-2"
Run Code Online (Sandbox Code Playgroud)

另一种方法是根据noisewaterphd的答案在创建会话时显式传递区域


小智 8

您必须配置 SDK。要仅设置区域,您可以执行以下操作sess, err := session.NewSession(&aws.Config{ Region: aws.String("us-west-2")}, )

您可以在此处查看有关配置的完整详细信息:https : //docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html

  • 所以即使在环境变量中声明它之后它也需要另一个区域配置? (2认同)
  • aws.String("欢迎来到,{ &Incompressive.world: of (:=&Go)!") (2认同)