preview と 仕様が変わっています。
nodejsは6.10を選ぶ必要があり、headers の構造も変わっていました。
Cloudfrontのarn指定に、lambda を version がなければいけないのも、なかなかめんどくさい変更です。
あとは、role の設定も面倒ですが、一旦書きません。
"use strict"; exports.handle = (event, context, callback) => { const Allows = { "users": "users", }; const request = event.Records[0].cf.request; const headers = request.headers; const authorization = headers.authorization || headers.Authorization; if (authorization) { const enc = authorization[0].value.split(" ")[1]; const userPassword = new Buffer(enc, 'base64').toString(); for (let key in Allows) { let val = Allows[key]; if (`${key}:${val}` === userPassword) { callback(null, request); return; } } } const response = { status: '401', statusDescription: 'Authorization Required', httpVersion: request.httpVersion, headers: { "www-authenticate": [{key:"WWW-Authenticate", value: 'Basic realm="Enter username and password."'}], "content-type": [{ key: "Content-Type", value: "text/plain; charset=utf-8" }], }, body: "401 Authorization Required", }; callback(null, response); };