如何正确导入aws-sdk-go服务?

时间:2018-05-02 09:06:31

标签: go aws-sdk-go

我是Go编程语言的新手,对AWS的Go SDK来说是全新的。我正在尝试使用服务但是我遇到了一个奇怪的问题,即找到了导入服务定义的类型,但是服务的功能是未定义的。

这个问题不是关于使用特定服务,而是关于如何正确导入它。我的代码:

package auth

import (
    "log"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/service/cognitoidentityprovider"
)

func SignUpTest() {

    input := cognitoidentityprovider.SignUpInput{
        Username: aws.String("example@mail.com"),
        Password: aws.String("test1234"),
    }

    _, err := cognitoidentityprovider.SignUp(&input)

    if err != nil {
        log.Fatal(err)
    }
}

运行go build时出现以下错误:

auth/signup.go:18:12: undefined: cognitoidentityprovider.SignUp

我的IDE中的自动完成功能还指出它可以找到cognitoidentityprovider.SingUpInput结构,但无法找到cognitoidentityprovider.SignUp函数。

我在WSL Ubuntu上使用Go 1.10.1。我使用DEP 0.4.1进行包管理。我验证了AWS SDK在供应商文件夹中可用,并且cognitoidentityprovider包可用(SignUp)功能也在那里。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

错误说明了一切。未定义cognitoidentityprovider.SignUp,因为SignUp包没有导出符号cognitoidentityprovider

我不确定你想要做什么,因为我不熟悉那个SDK,但是你试图调用一个不存在的函数。我建议您重新检查您正在关注的文档或示例。你可能犯了一个简单的错误。

您似乎对CognitoIdentityProvider.SignUp实例方法感到困惑。但由于这是一个实例方法,而不是导出的函数,它首先需要一个CognitoIdentityProvider的实例:

cip := cognitoidentityprovider.New( ... )
_, err := cip.SignUp(input)