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

CloudFormation中能否迁移CloudFront资源至嵌套栈而无需删除重建?

无需删除重建迁移CloudFront到嵌套栈的方案

要避免删除CloudFront分发导致停机,你可以通过CloudFormation的资源导入功能,将现有CloudFront资源迁移到嵌套栈中,具体步骤如下:

步骤1:准备嵌套栈模板

  1. 导出现有CloudFront分发的完整配置:
    使用AWS CLI获取分发详情:
    aws cloudfront get-distribution --id <你的分发ID>
    
  2. 将获取到的配置整理为独立的CloudFormation/SAM模板,确保模板中AWS::CloudFront::Distribution的所有属性(Origin、CacheBehavior、自定义域名、证书等)与现有分发完全一致。
  3. 在嵌套模板的CloudFront资源中添加DeletionPolicy: Retain,防止后续操作误删资源:
    CDNInNested:
      Type: AWS::CloudFront::Distribution
      DeletionPolicy: Retain
      Properties:
        # 完全匹配现有分发的配置
    

步骤2:将现有CloudFront导入到嵌套栈

通过CloudFormation的资源导入功能,把现有分发归属到新建的嵌套栈:

  • 控制台操作:
    1. 进入CloudFormation控制台,选择「创建栈」→「导入资源到栈」。
    2. 上传准备好的嵌套模板,指定栈名称(如CDNNestedStack)。
    3. 在导入资源环节,选择资源类型AWS::CloudFront::Distribution,填写逻辑资源ID(对应嵌套模板中的CDNInNested)和物理资源ID(你的CloudFront分发ID)。
    4. 完成栈创建,此时现有CloudFront已由嵌套栈管理。
  • CLI操作:
    aws cloudformation create-stack \
      --stack-name CDNNestedStack \
      --template-body file://nested-cdn-template.yml \
      --resources-to-import '[{
        "ResourceType": "AWS::CloudFront::Distribution",
        "LogicalResourceId": "CDNInNested",
        "ResourceIdentifier": {"Id": "<你的分发ID>"}
      }]'
    

步骤3:更新主栈替换资源引用

  1. 修改主模板:
    • 删除原有的CDN资源(类型为AWS::CloudFront::Distribution)。
    • 新增同名CDN资源,类型改为AWS::Serverless::Application,指向刚才创建的嵌套栈:
      CDN:
        Type: AWS::Serverless::Application
        Properties:
          Location:
            # 填写嵌套模板的S3路径、本地路径或Serverless应用仓库ARN
            ApplicationId: arn:aws:serverlessrepo:us-east-1:xxxxxx:applications/xxxxxx
          Parameters:
            # 按需传递嵌套栈所需参数
      
  2. 部署主栈,此时CloudFront分发不会被修改或删除,仅主栈的资源引用更新为嵌套栈。

关键注意事项

  • 导入资源时,嵌套模板的CloudFront配置必须与现有分发完全一致,否则导入会失败。若有配置差异,需先调整现有分发或模板使其匹配。
  • 整个迁移过程不会导致CloudFront分发重启或停机,仅变更资源的管理归属。
  • 确保主栈和嵌套栈的IAM权限配置正确,主栈需有调用嵌套栈的权限,嵌套栈需有管理CloudFront的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:42:46