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:DeployedBarFunction:Published
即便函数曾被彻底删除,AWS似乎仍保留了相关记录,且始终仅关联其中一个函数——尽管两个函数在模板中的配置完全一致。
请问:为什么CloudFormation仅关联一个函数而非两个?删除操作后为何仍会保留关联记录?我想确认是否是操作失误导致了该问题。
内容的提问来源于stack exchange,提问作者Garret Wilson
相关产品推荐
相关产品推荐

