gpt4 book ai didi

amazon-web-services - AWS Lamdbas 使用 CloudFront 分发域作为环境变量

转载 作者:行者123 更新时间:2023-12-05 07:11:47 25 4
gpt4 key购买 nike

我正在使用各种 AWS 组件以及一些自定义函数创建一个新堆栈。我的堆栈定义了一个 AWS::CloudFront::Distribution sam 时创建的分布部署命令运行。我想获取发行版的域名并将其用作我的两个函数的环境变量。在这里阅读文档

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html

指出通过这样做应该能够使用发行版的域名:

!GetAtt <logical_id>.DomainName

因此在我的一个函数中继续执行此操作:

 RenameAsset:
Type: 'AWS::Serverless::Function'
Properties:
CodeUri: 'rename-asset/build/distributions/rename-asset-1.0.0-SNAPSHOT.zip'
Handler: 'fts.assetiq.renamer.AssetRenamer::handleRequest'
Role: !GetAtt LambdaExecutionRole.Arn
Environment:
Variables:
PUBLIC_CDN_NAME: !GetAtt AssetIQDistribution.DomainName
Events:
RenameAssetEvent:
Type: Api
Properties:
RestApiId: !Ref AssetIQApi
Path: '/assetiq/assets'
Method: put

问题是我仍然无法检索域名并将其用作环境变量。我尝试了其他几种替代方法(比如使用 !Sub 而不是 !GetAtt )但似乎没有任何效果。任何人都可以对此有所了解。作为引用,我的分发配置如下:

  CloudFrontOriginAccessIdentity:
Type: 'AWS::CloudFront::CloudFrontOriginAccessIdentity'
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: 'Asset-IQ Origin Identity'

AssetIQDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Origins:
- DomainName: !GetAtt S3Bucket.DomainName
Id: !Sub S3-assetiq-${ApplicationStage}
S3OriginConfig:
OriginAccessIdentity:
Fn::Sub: 'origin-access-identity/cloudfront/${CloudFrontOriginAccessIdentity}'
Enabled: 'true'
Comment: "asset iq cloudfront distribution"
Logging:
IncludeCookies: 'false'
Bucket: assetiq-logs.s3.amazonaws.com
Prefix: assetiq-logs_
DefaultCacheBehavior:
Compress: 'true'
AllowedMethods:
- GET
- HEAD
- OPTIONS
TargetOriginId: !Sub S3-assetiq-${ApplicationStage}
ForwardedValues:
QueryString: 'false'
ViewerProtocolPolicy: redirect-to-https
PriceClass: PriceClass_100
ViewerCertificate:
CloudFrontDefaultCertificate: 'true'
IPV6Enabled: false

最佳答案

关闭此问题,因为问题已解决。事实证明 SAM 模板配置是正确的,但我使用错误的键引用系统环境变量,导致返回空值。

在代码级别更正该问题解决了问题,而且似乎按照我最初的方式引用域名工作得很好。

关于amazon-web-services - AWS Lamdbas 使用 CloudFront 分发域作为环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60638543/

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