gpt4 book ai didi

amazon-web-services - 阻止 CloudFormation 从 CloudFront 中删除 Lambda Edge 关联

转载 作者:行者123 更新时间:2023-12-04 08:14:06 32 4
gpt4 key购买 nike

我正在使用 CloudFormation 来管理 CloudFront 分配

在此 CloudFront 发行版上,我关联了一个 Lambda Edge 函数(不使用 CloudFormation)。

问题稍后出现,当我使用相同的 CloudFormation 堆栈更新 CloudFront 发行版时,它删除所有 Lambda Edge 关联

如何防止这种情况发生?

实在是太可惜了..

PS:有时 CloudFormation 会删除 Lambda 关联(例如更新证书 ARN 时),有时则不会。

编辑:我可以尝试使用 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html但有没有更简单的方法? 不..

编辑:AWS 论坛上有同样的问题 https://forums.aws.amazon.com/thread.jspa?threadID=274111 (需要登录)

最佳答案

可以使用 CloudFormation 为 CloudFront“部署”新的 Lambda@Edge 函数。

CloudFront 和 Lambda@Edge 需要版本化的 Lambda 函数。因此,您需要确保您的 CloudFront 模板在 Lambda 代码更改时发布新版本,并且您的分配使用版本别名。

请参阅CloudFormation template在我的boilerplate Go/Lambda应用程序的工作示例:

  WebAuthFunction:
Properties:
AutoPublishAlias: Live
CodeUri: ./web/handlers/auth/index.zip
Environment: !Ref AWS::NoValue
FunctionName: !Sub ${AWS::StackName}-WebAuthFunction
Handler: index.handler
Role: !GetAtt WebAuthFunctionRole.Arn
Runtime: nodejs6.10
Type: AWS::Serverless::Function

WebDistribution:
Condition: WebDomainNameSpecified
Properties:
DistributionConfig:
Aliases:
- !Ref WebDomainName
Comment: !Sub Distribution for ${WebBucket}
DefaultCacheBehavior:
AllowedMethods:
- GET
- HEAD
Compress: true
ForwardedValues:
Cookies:
Forward: none
QueryString: true
LambdaFunctionAssociations:
- !If
- OAuthClientIdSpecified
- EventType: viewer-request
LambdaFunctionARN: !Ref WebAuthFunction.Version
- !Ref AWS::NoValue
TargetOriginId: !Ref WebBucket
ViewerProtocolPolicy: redirect-to-https
DefaultRootObject: index.html
Enabled: true
HttpVersion: http2
Origins:
- DomainName: !Sub ${WebBucket}.s3.amazonaws.com
Id: !Ref WebBucket
S3OriginConfig:
OriginAccessIdentity: !Sub origin-access-identity/cloudfront/${WebOriginAccessIdentity}
PriceClass: PriceClass_All
ViewerCertificate:
AcmCertificateArn: !Ref WebCertificate
SslSupportMethod: sni-only
Type: AWS::CloudFront::Distribution

关于amazon-web-services - 阻止 CloudFormation 从 CloudFront 中删除 Lambda Edge 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48868643/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com