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

CloudFormation部署无法关联第二个CloudFront函数的问题咨询

CloudFront函数关联异常问题

我有一个关联单个函数的CloudFront分发,初始模板配置如下:

CloudFrontDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
…
        DefaultCacheBehavior:
…
          FunctionAssociations:
            - EventType: viewer-request
              FunctionARN: !GetAtt FooFunction.FunctionMetadata.FunctionARN

执行aws cloudformation deploy …部署栈后,控制台显示FooFunction状态为Deployed。

之后我在CloudFormation模板中新增了另一个函数,再次执行aws cloudformation deploy …,模板配置更新为:

CloudFrontDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
…
        DefaultCacheBehavior:
…
          FunctionAssociations:
            - EventType: viewer-request
              FunctionARN: !GetAtt FooFunction.FunctionMetadata.FunctionARN
            - EventType: viewer-request
              FunctionARN: !GetAtt BarFunction.FunctionMetadata.FunctionARN

注意两个函数均设置了AutoPublish: true。

此时控制台“Functions”栏目下可见两个函数:FooFunction状态仍为Deployed,但BarFunction状态为Published;点击BarFunction后,“Associated distributions”显示:

This function is not associated with any distributions.

但模板中明明已将BarFunction列入FunctionAssociations配置。

我尝试过多种解决方法,甚至彻底删除过两个函数,具体步骤如下:

  • 从模板中删除两个函数的定义,以及分发的整个FunctionAssociations部分;
  • 执行aws cloudformation deploy …,并在控制台确认两个函数已不存在;
  • 在控制台手动使整个分发(/*)失效;
  • 将两个函数和FunctionAssociations重新添加回模板;
  • 再次执行aws cloudformation deploy。

结果依旧:

  • FooFunction: Deployed
  • BarFunction: Published

即便函数曾被彻底删除,AWS似乎仍保留了相关记录,且始终仅关联其中一个函数——尽管两个函数在模板中的配置完全一致。

请问:为什么CloudFormation仅关联一个函数而非两个?删除操作后为何仍会保留关联记录?我想确认是否是操作失误导致了该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:45:23