Yve*_* M. 6 amazon-web-services amazon-cloudfront aws-cloudformation aws-lambda aws-lambda-edge
我正在使用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 代码更改时发布新版本,并且您的分配使用版本别名。
请参阅我的Go/Lambda 样板应用程序中的CloudFormation 模板以获取工作示例:
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1360 次 |
最近记录: |