Я пишу API, который работает на AWS Lambda в среде Node.
Мое намерение состоит в том, чтобы взять набор AWS учетных данных и создать корзину S3 в этой учетной записи AWS. Проблема в том, что мне нужно «переключить» AWS учетные данные с того, с чем работает мой API, на то, что было передано.
Просматривая в Интернете, я увидел, что AWS Python SDK, boto3
, фактически позволяет вам передавать набор учетных данных при инициализации клиента S3, но я не увидел аналогичной концепции в JavaScript SDK для AWS.
Однако мне удалось создать следующий код я достиг желаемого эффекта:
const {accessKeyId, secretAccessKey} = AWS.config;
// Switch to their credentials
AWS.config.update({
accessKeyId: env.awsAccessKey,
secretAccessKey: env.awsSecretKey
});
// Create the bucket in their AWS account (not ours)
const client = new AWS.S3();
await client.createBucket({
Bucket: env.rootBucket
}).promise();
// Switch credentials back
AWS.config.update({
accessKeyId,
secretAccessKey
});
Проблема, с которой я столкнулся, заключается в том, что когда я запускаю это глобальное обновление до AWS.config
, другие вызовы в моем API, очевидно, затрагиваются - и это не так. предполагаемое поведение. Есть ли способ выполнить sh то, что я хочу в AWS JS SDK, без этого?
Любая помощь будет оценена.
Спасибо!