Based on code the code for [aws_config::default_provider::credentials::DefaultCredentialsChain]
()
| 23 | /// Based on code the code for |
| 24 | /// [aws_config::default_provider::credentials::DefaultCredentialsChain] |
| 25 | pub async fn new() -> Self { |
| 26 | let region = DefaultRegionChain::builder().build().region().await; |
| 27 | let config = ProviderConfig::default().with_region(region.clone()); |
| 28 | |
| 29 | let env_provider = EnvironmentVariableCredentialsProvider::new(); |
| 30 | let profile_provider = ProfileFileCredentialsProvider::builder().configure(&config).build(); |
| 31 | let web_identity_token_provider = WebIdentityTokenCredentialsProvider::builder() |
| 32 | .configure(&config) |
| 33 | .build(); |
| 34 | let imds_provider = ImdsCredentialsProvider::builder().configure(&config).build(); |
| 35 | let ecs_provider = EcsCredentialsProvider::builder().configure(&config).build(); |
| 36 | |
| 37 | let mut provider_chain = CredentialsProviderChain::first_try("Environment", env_provider); |
| 38 | |
| 39 | provider_chain = provider_chain |
| 40 | .or_else("Profile", profile_provider) |
| 41 | .or_else("WebIdentityToken", web_identity_token_provider) |
| 42 | .or_else("EcsContainer", ecs_provider) |
| 43 | .or_else("Ec2InstanceMetadata", imds_provider); |
| 44 | |
| 45 | CredentialsChain { provider_chain } |
| 46 | } |
| 47 | |
| 48 | async fn credentials(&self) -> provider::Result { |
| 49 | self.provider_chain |