From 1bb882edd5c1745d1a1bd4cc12e30fcbd8f81be9 Mon Sep 17 00:00:00 2001 From: Kenny Ballou Date: Tue, 14 Jan 2020 18:53:39 -0700 Subject: uri-rewrite: rewrite function in python Now that python3.7 is available as a lambda@edge runtime environment, switch to the URI rewrite lambda function. Signed-off-by: Kenny Ballou --- stacks/blog.tpl | 2 +- stacks/uri-rewrite.in | 43 ++++++++++++++++++++++++++----------------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/stacks/blog.tpl b/stacks/blog.tpl index 6ab65d1..454540c 100644 --- a/stacks/blog.tpl +++ b/stacks/blog.tpl @@ -176,7 +176,7 @@ "Handler": "index.handler", "MemorySize": 128, "Role": {"Fn::GetAtt": ["URIRewriteLambdaRole", "Arn"]}, - "Runtime": "nodejs8.10", + "Runtime": "python3.7", "Tags": [ {"Key": "Domain", "Value": {"Ref": "DomainName"}} ] diff --git a/stacks/uri-rewrite.in b/stacks/uri-rewrite.in index 83a391d..e474cec 100644 --- a/stacks/uri-rewrite.in +++ b/stacks/uri-rewrite.in @@ -1,25 +1,34 @@ [+ autogen5 template -*- mode: json -*- +] {"Fn::Join": ["\n", [ - "'use strict';", - "exports.handler = (event, context, callback) => {", - " var whitelist = [", - " 'html',", + "def handler(event, _context):", + " whitelist = [", + " 'asc',", " 'css',", + " 'gif',", + " 'html',", + " 'ico',", + " 'jpeg',", " 'jpg',", - " 'svg',", + " 'js',", + " 'json',", + " 'map',", + " 'md',", + " 'ogg',", + " 'pdf',", " 'png',", + " 'pug',", + " 'sass',", + " 'scss',", + " 'svg',", " 'txt',", " 'xml',", - " 'pdf',", - " 'ico',", - " 'ogg',", - " 'asc'", - " ];", - " var request = event.Records[0].cf.request;", - " var extension = request.uri.split('.').pop();", - " if (typeof extension == 'undefined' || !whitelist.includes(extension)) {", - " request.uri = request.uri.replace(/\\\/?$/, '\/index.html');", - " }", - " return callback(null, request);", - "};" + " ]", + " request = event['Records'][0]['cf']['request']", + " extension = request['uri'].split('.')[-1]", + " if extension is None or extension not in whitelist:", + " if request['uri'][-1] == '/':", + " request['uri'] += 'index.html'", + " else:", + " request['uri'] += '/index.html'", + " return request" ]]} -- cgit v1.2.1