Проблема в том, что вы указали обработчик функции как async
. Если вы хотите использовать обратные вызовы, используйте обработчик функции более старого стиля:
exports.handler = function(event, context, callback) {
// ...
}
Код завершился до того, как функция getSecretValue()
завершилась, и у него была возможность выполнить обратный вызов. И поскольку ваша функция async
, а вы не возвращали Promise, среда выполнения Lambda не ждет.
Я бы отошел от старого кода в стиле обратного вызова и перешел бы к более новому асинхронному / await-стилю код, например:
const AWS = require('aws-sdk');
const client = new AWS.SecretsManager({region: 'us-east-1'});
exports.handler = async (event, context) => {
const params = {SecretId: secretName};
const rc = client.getSecretValue(params).promise();
return decode_secret(rc);
};