env.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. from alibabacloud_credentials.provider.refreshable import Credentials
  2. from alibabacloud_credentials_api import ICredentialsProvider
  3. from alibabacloud_credentials.utils import auth_util
  4. from alibabacloud_credentials.exceptions import CredentialException
  5. class EnvironmentVariableCredentialsProvider(ICredentialsProvider):
  6. def get_credentials(self) -> Credentials:
  7. access_key_id = auth_util.environment_access_key_id
  8. access_key_secret = auth_util.environment_access_key_secret
  9. security_token = auth_util.environment_security_token
  10. if access_key_id is None or len(access_key_id) == 0:
  11. raise CredentialException("Environment variable accessKeyId cannot be empty")
  12. if access_key_secret is None or len(access_key_secret) == 0:
  13. raise CredentialException("Environment variable accessKeySecret cannot be empty")
  14. return Credentials(
  15. access_key_id=access_key_id,
  16. access_key_secret=access_key_secret,
  17. security_token=security_token,
  18. provider_name=self.get_provider_name()
  19. )
  20. async def get_credentials_async(self) -> Credentials:
  21. return self.get_credentials()
  22. def get_provider_name(self) -> str:
  23. return 'env'