instance_provider.go 680 B

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