You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AWS CDK为现有CloudFront分发添加自定义域名别名

现有CloudFront分发添加自定义域名操作步骤
  • 首先注意:通过Distribution.fromDistributionAttributes导入的分发属于只读引用,无法直接通过L2 Distribution类修改属性,你需要直接使用L1层CfnDistribution资源关联现有分发并更新配置
  • 第二步:补充CDK代码配置别名和证书,示例如下:
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';

// 你已有的导入逻辑
const distribution = cloudfront.Distribution.fromDistributionAttributes(this, 'ImportedDist', {
  domainName: 'd111111abcdef8.cloudfront.net',
  distributionId: '012345ABCDEF',
});
const domainName = 'mysite.example.com';
const certificateArn = 'arn:aws:acm:us-east-1:123456789012:certificate/abcdefgh-1234-5678-9012-abcdefghujkl';

// 实例化CfnDistribution关联现有分发,更新配置
const cfnDistribution = new cloudfront.CfnDistribution(this, 'ModifyExistingDist', {
  distributionConfig: {
    // 保留原有分发的全量配置,此处仅列需要新增/修改的字段,原有字段不要遗漏
    enabled: true,
    defaultCacheBehavior: {
      // 原样填写你原有分发的默认缓存行为配置,必须和现有配置一致
      targetOriginId: '你的原有源站ID',
      viewerProtocolPolicy: 'redirect-to-https',
      allowedMethods: {
        quantity: 2,
        items: ['GET', 'HEAD'],
        cachedMethods: {
          quantity: 2,
          items: ['GET', 'HEAD'],
        }
      }
    },
    origins: {
      quantity: 1,
      items: [
        // 原样填写你原有分发的源站配置,必须和现有配置一致
        {
          id: '你的原有源站ID',
          domainName: '你的源站域名',
          customOriginConfig: {
            httpPort: 80,
            httpsPort: 443,
            originProtocolPolicy: 'https-only',
          }
        }
      ]
    },
    // 新增自定义域名配置
    aliases: {
      quantity: 1,
      items: [domainName]
    },
    viewerCertificate: {
      acmCertificateArn: certificateArn,
      sslSupportMethod: 'sni-only',
      minimumProtocolVersion: 'TLSv1.2_2021'
    }
  },
  // 指定要修改的现有分发ID
  id: distribution.distributionId
});

如果你不知道原有分发的完整配置,可以登录AWS CloudFront控制台查看现有分发的配置参数,原样填充到上述代码的对应位置,避免误改不需要调整的配置。

  • 第三步:执行cdk deploy提交栈变更,AWS会自动更新对应CloudFront分发的配置,变更全局生效通常需要5~10分钟。
  • 第四步:配置域名解析
    • 如果你的域名托管在Route53:添加A/AAAA类型的别名记录,记录值选择对应的CloudFront分发资源即可
    • 如果域名托管在其他服务商:添加CNAME记录,主机记录为mysite,记录值填写你的CloudFront分发域名dxxxxxx.cloudfront.net

注意事项:

  1. 关联的ACM证书必须位于us-east-1区域,且证书的使用者备用名称(SAN)已包含mysite.example.com,证书状态为已签发
  2. 如果你需要添加多个自定义域名,只需要在aliases.items数组中补充对应的域名即可,同时确保证书覆盖所有添加的域名

内容的提问来源于stack exchange,提问作者Petra Barus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:15:01