18 lines
808 B
JavaScript
18 lines
808 B
JavaScript
import { fromEnv } from "@aws-sdk/credential-provider-env";
|
|
import { fromContainerMetadata, fromInstanceMetadata } from "@aws-sdk/credential-provider-imds";
|
|
import { CredentialsProviderError } from "@aws-sdk/property-provider";
|
|
export const resolveCredentialSource = (credentialSource, profileName) => {
|
|
const sourceProvidersMap = {
|
|
EcsContainer: fromContainerMetadata,
|
|
Ec2InstanceMetadata: fromInstanceMetadata,
|
|
Environment: fromEnv,
|
|
};
|
|
if (credentialSource in sourceProvidersMap) {
|
|
return sourceProvidersMap[credentialSource]();
|
|
}
|
|
else {
|
|
throw new CredentialsProviderError(`Unsupported credential source in profile ${profileName}. Got ${credentialSource}, ` +
|
|
`expected EcsContainer or Ec2InstanceMetadata or Environment.`);
|
|
}
|
|
};
|