2016-11-21 2 views
-1

나는 golang에서 다음과 같은 기능이 있습니다 :이 실행할 때, 나는 다음과 같은 오류가 이제가져 오기 파일을 어떻게 변경합니까?

import (
    "github.com/aws/aws-sdk-go/service/iam" 
    "github.com/aws/aws-sdk-go/aws/session" 
    "fmt" 
) 
func NewIAM() *SphinxIAM { 
// awsConfig := aws.NewConfig() 
    sess, err := session.NewSession() 
    if err != nil { 
     fmt.Println("Failed to create session,", err) 
     return nil 
    } 
    session := &SphinxIAM{iam: iam.New(sess)} 
    return session 
} 

점점 오전 :

cannot use sess (type *session.Session) as type "github.com/aws/aws-sdk-go/aws/client".ConfigProvider in argument to iam.New: 
    *session.Session does not implement "github.com/aws/aws-sdk-go/aws/client".ConfigProvider (wrong type for ClientConfig method) 
     have ClientConfig(string, ...*"stash/cloud/sphinx/vendor/github.com/aws/aws-sdk-go/aws".Config) "stash/cloud/sphinx/vendor/github.com/aws/aws-sdk-go/aws/client".Config 
     want ClientConfig(string, ...*"github.com/aws/aws-sdk-go/aws".Config) "github.com/aws/aws-sdk-go/aws/client".Config 

내가 가져올 지 방법을 변경해야하지만, 내가 어떻게 정확하게 할 그렇게?

감사합니다!

답변

0

여기서 문제는 github.com/aws/aws-sdk-go/aws/session 패키지, 을 vendored입니다이 폴더 stash/cloud/sphinx/vendor/github.com/aws/aws-sdk-go/aws에서로드되는 것입니다.

하지만 전달하려는 기능 : iam.New()은 공급 업체가 아니며 동일한 공급 업체 폴더 (stash/cloud/sphinx/vendor/xxx)에서 가져 오지는 않지만 github.com/aws/aws-sdk-go/service/iam에서 직접 제공됩니다.

두 패키지를 같은 공급 업체 폴더에 넣거나 없어도됩니다. 종속성 도구 중 하나가이를 수행 할 수 있습니다 (예 : glide).이 경우 두 도구를 함께 처리하도록 지시해야합니다.

관련 문제