github.com/aliyun/credentials-go@v1.4.7/credentials/providers/env.go (about) 1 package providers 2 3 import ( 4 "fmt" 5 "os" 6 ) 7 8 type EnvironmentVariableCredentialsProvider struct { 9 } 10 11 type EnvironmentVariableCredentialsProviderBuilder struct { 12 provider *EnvironmentVariableCredentialsProvider 13 } 14 15 func NewEnvironmentVariableCredentialsProviderBuilder() *EnvironmentVariableCredentialsProviderBuilder { 16 return &EnvironmentVariableCredentialsProviderBuilder{ 17 provider: &EnvironmentVariableCredentialsProvider{}, 18 } 19 } 20 21 func (builder *EnvironmentVariableCredentialsProviderBuilder) Build() (provider *EnvironmentVariableCredentialsProvider, err error) { 22 provider = builder.provider 23 return 24 } 25 26 func (provider *EnvironmentVariableCredentialsProvider) GetCredentials() (cc *Credentials, err error) { 27 accessKeyId := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") 28 29 if accessKeyId == "" { 30 err = fmt.Errorf("unable to get credentials from enviroment variables, Access key ID must be specified via environment variable (ALIBABA_CLOUD_ACCESS_KEY_ID)") 31 return 32 } 33 34 accessKeySecret := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") 35 36 if accessKeySecret == "" { 37 err = fmt.Errorf("unable to get credentials from enviroment variables, Access key secret must be specified via environment variable (ALIBABA_CLOUD_ACCESS_KEY_SECRET)") 38 return 39 } 40 41 securityToken := os.Getenv("ALIBABA_CLOUD_SECURITY_TOKEN") 42 43 cc = &Credentials{ 44 AccessKeyId: accessKeyId, 45 AccessKeySecret: accessKeySecret, 46 SecurityToken: securityToken, 47 ProviderName: provider.GetProviderName(), 48 } 49 50 return 51 } 52 53 func (provider *EnvironmentVariableCredentialsProvider) GetProviderName() string { 54 return "env" 55 }