问题可能是因为golang程序没有正确解析AWS凭证文件。解决方法可采用AWS SDK for Go中的CredentialsProvider接口,首先要加载凭证文件,然后获取具有必要属性的AWSCredentials结构体,最后从中提取AccountID。
示例代码如下:
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/aws/credentials"
)
func main() {
sessOpts := session.Options{
Config: aws.Config{
Credentials: credentials.NewSharedCredentials("", ""),
},
}
sess, err := session.NewSessionWithOptions(sessOpts)
if err != nil {
panic(err)
}
creds, err := sess.Config.Credentials.Get()
if err != nil {
panic(err)
}
accountID := aws.StringValue(creds.AccountID)
fmt.Println(accountID)
}