У меня есть лямбда-авторизация, в которой мне нужно обновить переменную среды, которая будет использоваться для входа пользователя в систему. Однако, когда я пытаюсь запустить свои тесты на селен для параллельного моделирования 16 пользователей, я получаю ResourceConfilitException, The function could not be update error
.
function getSalt(functionName) {
return new Promise((resolve, reject) => {
if (process.env[saltKey]) {
return resolve(process.env[saltKey]);
}
const salt = crypto.randomBytes(16).toString('hex');
const lambda = new AWS.Lambda();
let newFunctionName = functionName;
return lambda.getFunctionConfiguration({ FunctionName: newFunctionName }, (getSaltError, data) => {
if (getSaltError) {
const getFunctionConfigError = new Error('Error getting function configuration');
console.error(getFunctionConfigError);
console.error(getSaltError);
return reject(getSaltError);
}
const environmentVariables = data.Environment.Variables || {};
environmentVariables[saltKey] = salt;
const params = {
FunctionName: data.FunctionName,
Environment: {
Variables: environmentVariables,
},
};
return lambda.updateFunctionConfiguration(params, (updateError) => {
if (updateError) {
const saltError = new Error('Faild to update environment variables with new salt.');
console.error(saltError);
console.error(updateError);
return reject(updateError);
}
return resolve(salt);
});
});
});
}
Эта ошибка не возникает, когда я пытаюсь смоделировать асинхронные вызовы этой лямбды с помощью вызова await Promise.all(Array(n).fill().map(() => httpsCallAuthorizerLambda()))
. поэтому я не мог воспроизвести проблему.