Лямбда-функция @ edge с использованием Python

Мы пытаемся написать лямбда-функцию @ edge для запуска на viewer-request. Мне удалось найти множество примеров использования JavaScript.

например

'use strict';

exports.handler = (event, context, callback) => {
    console.info('Event: ', JSON.stringify(event, null, 2));
    console.info('Context: ', JSON.stringify(context, null, 2));
    const request = event.Records[0].cf.request;

    // You can also store and read the redirect map
    // in DynamoDB or S3, for example.
    const redirects = {
        '/r/music':    '/card/bcbd2481',
        '/r/tree':     '/card/da8398f4',
    };

    if (redirects[request.uri]) {
        return callback(null, {
            status: '302',
            statusDescription: 'Found',
            headers: {
                'location': [{ 
                    key: 'Location',
                    value: redirects[request.uri] }]
            }
        });
    }

    callback(null, request);
};

Приведенный выше код будет перенаправлять запросы, соответствующие определенному пути. Может ли кто-нибудь посоветовать, как перенести похожий код на Python? или поделитесь ресурсами / информацией о развертывании функций python lambda @ edge.

Спасибо

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
1 727
2

Ответы 2

Lambda @ Edge раньше разрешает только Node.js, поэтому в то время, когда этот вопрос был первоначально задан, было невозможно создать функции Lambda @ Edge на Python или на любом другом языке, кроме Node.js (или внутри оболочки Node.js) .

По состоянию на август 2018 года Lambda @ Edge поддерживает только среды выполнения Node.js 6.10 и 8.10.

Lambda @ Edge теперь поддерживает Node.js 8.10, Node.js 10.x и Python 3.7 по состоянию на август 2019 года.

Пограничная среда заметно отличается от общего предложения Lambda по нескольким параметрам: см. Среда настройки и выполнения лямбда-функции в Руководстве разработчика CloudFront.

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