Как правильно импортировать сервис aws-sdk-go?
Я довольно новичок в языке программирования Go и совершенно новичок в Go SDK от AWS. Я пытаюсь использовать службу, но у меня есть странная проблема, когда типы, определенные импортированной службой, найдены, но функции службы не определены.
Этот вопрос не об использовании конкретного сервиса, а о том, как правильно его импортировать. Мой код:
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
функция.
Я использую Go 1.10.1 на WSL Ubuntu. Я использую DEP 0.4.1 для управления пакетами. Я проверил, что AWS SDK доступен в папке поставщика и что пакет cognitoidentityprovider доступен (SignUp
) функция тоже есть.
Что мне здесь не хватает?
1 ответ
Ошибка говорит обо всем. cognitoidentityprovider.SignUp
не определено, потому что нет символа SignUp
экспортируется cognitoidentityprovider
пакет.
Я не совсем уверен, что вы хотите сделать вместо этого, так как я не знаком с этим SDK, но вы пытаетесь вызвать функцию, которая не существует. Я предлагаю пересмотреть документацию или пример, которому вы следуете. Вы, вероятно, сделали простую ошибку.
Вы, кажется, смущены методом экземпляра CognitoIdentityProvider.SignUp. Но так как это метод экземпляра, а не экспортируемая функция, он требует экземпляра CognitoIdentityProvider
первый:
cip := cognitoidentityprovider.New( ... )
_, err := cip.SignUp(input)