github.com/aliyun/credentials-go@v1.4.7/credentials/instance_provider.go (about) 1 package credentials 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/alibabacloud-go/tea/tea" 8 ) 9 10 type instanceCredentialsProvider struct{} 11 12 var providerInstance = new(instanceCredentialsProvider) 13 14 func newInstanceCredentialsProvider() Provider { 15 return &instanceCredentialsProvider{} 16 } 17 18 func (p *instanceCredentialsProvider) resolve() (*Config, error) { 19 roleName, ok := os.LookupEnv(ENVEcsMetadata) 20 if !ok { 21 return nil, nil 22 } 23 enableIMDSv2, _ := os.LookupEnv(ENVEcsMetadataIMDSv2Enable) 24 25 config := &Config{ 26 Type: tea.String("ecs_ram_role"), 27 RoleName: tea.String(roleName), 28 EnableIMDSv2: tea.Bool(strings.ToLower(enableIMDSv2) == "true"), 29 } 30 return config, nil 31 }