-1

我对 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 开发工具包在供应商文件夹中可用,并且 cognitoidentityprovider 包可用(SignUp)功能也在那里。

我在这里想念什么?

4

1 回答 1

2

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

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

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

cip := cognitoidentityprovider.New( ... )
_, err := cip.SignUp(input)
于 2018-05-02T09:28:25.157 回答