我是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
)功能也在那里。
我在这里缺少什么?
答案 0 :(得分:2)
错误说明了一切。未定义cognitoidentityprovider.SignUp
,因为SignUp
包没有导出符号cognitoidentityprovider
。
我不确定你想要做什么,因为我不熟悉那个SDK,但是你试图调用一个不存在的函数。我建议您重新检查您正在关注的文档或示例。你可能犯了一个简单的错误。
您似乎对CognitoIdentityProvider.SignUp实例方法感到困惑。但由于这是一个实例方法,而不是导出的函数,它首先需要一个CognitoIdentityProvider
的实例:
cip := cognitoidentityprovider.New( ... )
_, err := cip.SignUp(input)