将请求路由到离 CloudFront Functions 查看器请求事件中的查看器更近的来源 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将请求路由到离 CloudFront Functions 查看器请求事件中的查看器更近的来源

以下代码示例演示将请求路由到离 CloudFront Functions 查看器请求事件中的查看器更近的来源。

JavaScript
适用于 CloudFront Functions 的 JavaScript 运行时 2.0
注意

查看 GitHub,了解更多信息。查找完整示例,并了解如何在 CloudFront Functions examples 存储库中进行设置和运行。

import cf from 'cloudfront'; function handler(event) { const request = event.request; const headers = request.headers; const country = headers['cloudfront-viewer-country'] && headers['cloudfront-viewer-country'].value; //List of Regions with S3 buckets containing content const countryToRegion = { 'DE': 'eu-central-1', 'IE': 'eu-west-1', 'GB': 'eu-west-2', 'FR': 'eu-west-3', 'JP': 'ap-northeast-1', 'IN': 'ap-south-1' }; const DEFAULT_REGION = 'us-east-1'; const selectedRegion = (country && countryToRegion[country]) || DEFAULT_REGION; const domainName = `cloudfront-functions-demo-bucket-in-${selectedRegion}.s3.${selectedRegion}.amazonaws.com`; cf.updateRequestOrigin({ "domainName": domainName, "originAccessControlConfig": { "enabled": true, "region": selectedRegion, "signingBehavior": "always", "signingProtocol": "sigv4", "originType": "s3" }, }); return request; }

有关 Amazon SDK 开发人员指南和代码示例的完整列表,请参阅 将 CloudFront 与 Amazon SDK 配合使用。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。