1. Lambda@Edge的概念
每个 Lambda@Edge 函数都必须包含 callback
参数,以成功处理请求或返回响应
2. Lambda@Edge在CloudFront 的应用
(1)A/B测试
如果要测试主页的两种不同版本,但是不想创建重定向或更改 URL,则可使用以下示例。此示例会在 CloudFront 接收到请求时设置 Cookie,随机将用户分配至版本 A 或 B,然后将相应的版本返回到查看器。
import json
import random
def lambda_handler(event, context):
request = event['Records'][0]['cf']['request']
headers = request['headers']
if request['uri'] != '/experiment-pixel.jpg':
# Not an A/B Test
return request
cookieExperimentA, cookieExperimentB = 'X-Experiment-Name=A', 'X-Experiment-Name=B'
pathExperimentA, pathExperimentB = '/experiment-group/control-pixel.jpg', '/experiment-group/treatment-pixel.jpg'
'