Есть ли способ загрузить внешние данные в Lambda@Edge

Я пытался использовать 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();
}

Интересно, эта переменная "версии" может быть загружена правильно и совместно использовать в каждом последующем запросе

у вас есть более эффективные решения?

2 ответа

Я столкнулся с той же проблемой, но не для A/B тестирования. Я только что создал файл json в своей лямбда-функции, чтобы избежать задержки выполнения http-вызовов внутри лямбда-функций. Это работает, но обслуживание не является хорошим, так как каждый раз, когда мне нужно изменить файл Json, мне нужно снова развертывать лямбда-функцию.

Пока я искал его, я нашел то же решение, описанное выше для Mr.Ocean, звучит как хорошая альтернатива для сохранения данных в S3.

Почему бы не сохранить эти данные в S3 и использовать Lambda@Edge для получения конфигурации оттуда? Кроме того, чтобы уменьшить задержку, вы можете перейти к корзине S3, содержащей коэффициент трафика, с помощью CloudFront, и ваш L@E может позвонить в CloudFront и получить желаемое значение.

Другие вопросы по тегам