Skip to content

Instantly share code, notes, and snippets.

@danielreiser
Last active August 10, 2021 09:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danielreiser/0ca40dc5efc93431bfa4033008ed460a to your computer and use it in GitHub Desktop.
Save danielreiser/0ca40dc5efc93431bfa4033008ed460a to your computer and use it in GitHub Desktop.
Origin Request lambda@edge function for header evaluation
'use strict';
const SOURCE_HEADER_NAME = 'x-myapp-origin';
exports.handler = async event => {
console.group('[INFO] lambda@edge Origin Request')
const request = event.Records[0].cf.request;
if (request.headers[SOURCE_HEADER_NAME]) {
const headerValue = request.headers[SOURCE_HEADER_NAME][0].value;
const domainName = `web-bucket-${headerValue}.s3.eu-central-1.amazonaws.com`;
console.log(`[OVERWRITE] Using custom origin: ${domainName}`);
request.origin = {
s3: {
...request.origin.s3,
domainName,
},
};
request.headers['host'] = [{ key: 'Host', value: domainName }];
console.log(request.origin.s3);
console.log(request.headers.host);
}
console.groupEnd()
return request;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment