@aws-cdk/aws-cloudfront-origins

中文文档
1.204.0发布于 2023/06/20Apache-2.0TypeScriptCommonJS近 30 天下载 1.3万

AWS 云源的 CDK 构造库

此软件包已被标记为弃用

AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html

中文使用文档
文档目录6 节
  1. S3 弹匣
  2. 添加自定义信头
  3. ELBv2 负载平衡器
  4. 从 HTTP 端点
  5. 失败起源( 奥里金组)
  6. 来自 API 网关 REST API

用于 CDK CloudFront 图书馆的 CloudFront 出处


End-of-Support

AWS CDK v1在2023-06-01上达到了支持结束. 此软件包不再更新,用户应该迁移到 AWS CDK v2.

关于如何移徙的更多信息,请参见: 移动到 AWS CDK v2 指南。 。 。 .


这个库包含用于定义 CloudFront 发行源的方便方法. 您可以使用此库创建起源于 S3桶,弹性负载平衡 v2负载平衡器,或任何其他域名.

S3 弹匣

一个S3桶可以被添加为来源. 如果将桶配置为网站端点, 分发会使用 S3 重定向和 S3 自定义错误 文档.

const myBucket = new s3.Bucket(this, 'myBucket');
new cloudfront.Distribution(this, 'myDist', {
  defaultBehavior: { origin: new origins.S3Origin(myBucket) },
});

以上将基于下列情况对桶作不同的处理: IBucket.isWebsite 是否设定。 如果桶被配置为网站,桶就是 作为 HTTP 源处理,可以使用内置的 S3 重定向和出错页面. 否则,桶作为桶的来源处理 CloudFront的重定向和错误处理将被使用. 在后一种情况下,起源地将建立来源地身份,并允许其接触 下个桶 这可以和不公开的桶一起使用,以要求用户使用 CloudFront 访问您的内容 URL而不是直接的S3 URL. 或者,可以将自定义来源的获取身份传递给财产中的S3来源.

添加自定义信头

您可以配置 CloudFront 以添加自定义标题到它向您源头发送的请求 。 这些自定义信头使您能够发送和收集您无法从通常的观众请求中获得的信息。 这些信头甚至可以为每个来源定制. CloudFront支持自定义和Amazon S3源头的自定义头.

const myBucket = new s3.Bucket(this, 'myBucket');
new cloudfront.Distribution(this, 'myDist', {
  defaultBehavior: { origin: new origins.S3Origin(myBucket, {
    customHeaders: {
      Foo: 'bar',
    },
  })},
});

ELBv2 负载平衡器

弹性负载平衡(ELB)v2负载平衡器可用作出产地. 使负载平衡器作为来源,必须公开 无障碍(internetFacing ) (中文(简体). 应用程序和网络负荷平衡器都得到支持.

import * as ec2 from '@aws-cdk/aws-ec2';
import * as elbv2 from '@aws-cdk/aws-elasticloadbalancingv2';

declare const vpc: ec2.Vpc;
// Create an application load balancer in a VPC. 'internetFacing' must be 'true'
// for CloudFront to access the load balancer and use it as an origin.
const lb = new elbv2.ApplicationLoadBalancer(this, 'LB', {
  vpc,
  internetFacing: true,
});
new cloudfront.Distribution(this, 'myDist', {
  defaultBehavior: { origin: new origins.LoadBalancerV2Origin(lb) },
});

原出地还可以被定制,在不同端口上响应,具有不同的连接属性等.

import * as elbv2 from '@aws-cdk/aws-elasticloadbalancingv2';

declare const loadBalancer: elbv2.ApplicationLoadBalancer;
const origin = new origins.LoadBalancerV2Origin(loadBalancer, {
  connectionAttempts: 3,
  connectionTimeout: Duration.seconds(5),
  readTimeout: Duration.seconds(45),
  keepaliveTimeout: Duration.seconds(45),
  protocolPolicy: cloudfront.OriginProtocolPolicy.MATCH_VIEWER,
});

注意 readTimeout 财务报告和审定财务报表 keepaliveTimeout 属性只有在对 CloudFront 源响应请求限制增加时, 其值才能超过60秒 目标账户中已批准了配额;否则,超过60秒的值会在部署时产生错误。 考虑这个值是 仍限于180秒的最高值,这是该配额的硬性限制.

从 HTTP 端点

起源也可以从其他HTTP端点创建,考虑到域名,也可以选择其他起源属性.

new cloudfront.Distribution(this, 'myDist', {
  defaultBehavior: { origin: new origins.HttpOrigin('www.example.com') },
});

见文件 @aws-cdk/aws-cloudfront 更多信息.

失败起源( 奥里金组)

您可以设置 CloudFront , 对于需要高可用度的假想设置源故障 . 要开始,你创建了一个起源组,有两个起源:一级和二级. 如果主源不可用,或返回显示失败的 HTTP 响应状态代码, CloudFront自动切换到二级源. 使用 OriginGroup 类 :

const myBucket = new s3.Bucket(this, 'myBucket');
new cloudfront.Distribution(this, 'myDist', {
  defaultBehavior: {
    origin: new origins.OriginGroup({
      primaryOrigin: new origins.S3Origin(myBucket),
      fallbackOrigin: new origins.HttpOrigin('www.example.com'),
      // optional, defaults to: 500, 502, 503 and 504
      fallbackStatusCodes: [404],
    }),
  },
});

来自 API 网关 REST API

起源可以从一个API Gateway REST API创建. 建议使用 区域 API 在这种情况下.

declare const api: apigateway.RestApi;
new cloudfront.Distribution(this, 'Distribution', {
  defaultBehavior: { origin: new origins.RestApiOrigin(api) },
});

出处路径会自动被设定为艺名.

版本与发布记录

@aws-cdk/aws-cloudfront-origins 共发布 171 个版本,首次发布于 2020/07/29;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.204.0latest2023/06/203 年前
1.203.02023/06/013 年前
1.202.02023/05/223 年前
1.201.02023/05/113 年前
1.200.02023/04/273 年前
1.199.02023/04/213 年前

关于 @aws-cdk/aws-cloudfront-origins 的常见问题

@aws-cdk/aws-cloudfront-origins 是什么?

AWS 云源的 CDK 构造库注意:该包已被作者标记为弃用——AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html

如何安装 @aws-cdk/aws-cloudfront-origins?

在项目目录运行 npm install @aws-cdk/aws-cloudfront-origins,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@aws-cdk/aws-apigateway(1.204.0)、@aws-cdk/aws-cloudfront(1.204.0)、@aws-cdk/aws-elasticloadbalancingv2(1.204.0)、@aws-cdk/aws-iam(1.204.0)、@aws-cdk/aws-s3(1.204.0)、@aws-cdk/core(1.204.0)、constructs(^3.3.69)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-cdk/aws-cloudfront-origins 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws-cdk/aws-cloudfront-origins 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aws-cdk/aws-cloudfront-origins 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 14.15.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aws-cdk/aws-cloudfront-origins 可以商用吗?

@aws-cdk/aws-cloudfront-origins 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-cdk/aws-cloudfront-origins 的下载量有多少?

根据 npm 官方下载统计,@aws-cdk/aws-cloudfront-origins 在 2026/10/07 – 2026/11/05 这 30 天内被下载 13,196 次,日均约 440 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws-cdk/aws-cloudfront-origins 还在维护吗?

最新版本 1.204.0 发布于 2023/06/20(3 年前);至今共发布 171 个版本,其中过去 12 个月发布了 0 个;首次发布于 2020/07/29。作者已将其标记为弃用,新项目建议寻找替代方案。