Как правильно импортировать сервис 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)
Другие вопросы по тегам