Cloudfront如何用lambda函数修改回源host

查看 46|回复 2
作者:muyu   
ucms   
AWS Lambda@edge 是一个在 Amazon CloudFront 上运行的 Lambda 函数,它可以用于自定义 CDN 行为。要在 CloudFront 中使用 Lambda 函数修改回源 Host,您需要执行以下步骤:
1、创建一个 AWS Lambda 函数:
登录到 AWS 管理控制台,转到 Lambda 服务,然后创建一个新的 Lambda 函数。选择适当的运行时(例如 Node.js)并输入以下示例代码。此示例代码会将回源 Host 设置为您提供的自定义域名。
javascript
Copy code
exports.handler = async (event) => {
    const request = event.Records[0].cf.request;
    const customHost = 'your-custom-origin-domain.com';
   
    request.headers['host'] = [
        {
            key: 'Host',
            value: customHost
        }
    ];
   
    return request;
};
替换 your-custom-origin-domain.com 为您的自定义回源域名。保存并部署您的 Lambda 函数。
2、将 Lambda 函数与 CloudFront 配置关联:
转到 Amazon CloudFront 控制台,找到您要关联 Lambda 函数的分配(distribution)。选择“Behaviors”选项卡,然后选择要修改的行为(例如 Default (*))。点击“Edit”。
向下滚动到 "Lambda Function Associations" 部分,选择 "Viewer Request" 事件类型。在 "Lambda Function ARN" 文本框中,输入在步骤 1 中创建的 Lambda 函数的 Amazon 资源名称(ARN)。
保存更改并等待 CloudFront 分配部署更新。
完成上述步骤后,每次 CloudFront 收到客户端请求时,它都会触发关联的 Lambda 函数,修改回源 Host 并将请求发送到您的自定义域名。
请注意,使用 [email protected] 会产生额外费用,具体取决于您的请求量和代码执行时间。在正式使用之前,请确保您了解相关的费用。
ucms   
直接问chatgpt
您需要登录后才可以回帖 登录 | 立即注册

返回顶部