I have multiple profiles defined both in .aws/credentials
and .aws/config
[profile dev]
region = us-east-1
[profile staging]
region = eu-west-1
Using the NodeJS AWS SDKv3 I can load credentials from my local config:
const {S3Client} = require('@aws-sdk/client-s3');
const {fromIni} = require('@aws-sdk/credential-providers');
new S3Client({
credentials: fromIni({
profile: 'dev'
})
});
How can I do the same for region? (something akin to the following)
const {S3Client} = require('@aws-sdk/client-s3');
const {fromIni} = require('@aws-sdk/credential-providers');
const {fromIni: regionFromIni} = require('@aws-sdk/region-providers');
new S3Client({
credentials: fromIni({
profile: 'dev'
}),
region: regionFromIni({
profile: 'dev'
})
});
@fedonev pointed me to a solution that works:
const {loadSharedConfigFiles} = require('@aws-sdk/shared-ini-file-loader');
const sharedConfig = await loadSharedConfigFiles();
console.log(sharedConfig.configFile.dev?.region);