Я пытался использовать Lambda @ Edge для обработки A / B-тестирования на моем сайте.
Интересно, есть ли способ позволить функциям Lambada @ Edge загружать внешние данные конфигурации из URL, например? я создал API для возврата скорости трафика каналов A / B, я хочу управлять этими данными конфигурации снаружи, чтобы я мог динамически настраивать поток трафика на канал A или B и не нуждался в изменении функции Lambda.
то, что я сделал сейчас, это
var versions = [];
var isLoadingVersionData = false;
const https = require('https');
function loadVersions() {
if (isLoadingVersionData)
return null;
isLoadingVersionData=true;
https.get('https://example.com/getAbTestConfig', (res) => {
res.on('data', (d) => {
var parsedBody = JSON.parse(d);
if (parsedBody.status)
versions = parsedBody.data;
});
}).on('error', (e) => {
console.log(e);
});
}
//and load the function in handler
exports.handler = (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
loadVersions();
}
Интересно, что эта переменная "версии" может быть правильно загружена и предоставлена в каждый последующий запрос
У вас есть более эффективные решения?