当前位置: 首页 > 知识库问答 >
问题:

在CloudFormation或Serverless.yml中提供OriginAccessSidEntity引用

季稳
2023-03-14

我试过这个:

myDistribution:
  Type: AWS::CloudFront::Distribution
  Properties:
    DistributionConfig:
      Origins:
      - DomainName:bucket.s3.amazonaws.com
        Id: myS3Origin
        S3OriginConfig: {
          OriginAccessIdentity:origin-access-identity/cloudfront/ !Ref cloudfrontoriginaccessidentity
        }
      Enabled: 'true'
      Comment: Some comment
      DefaultCacheBehavior:
        ForwardedValues:
          QueryString: 'false'
          Cookies:
            Forward: none
        AllowedMethods:
        - GET
        - HEAD
        - OPTIONS
        TargetOriginId: myS3Origin
        ViewerProtocolPolicy: redirect-to-https
      PriceClass: PriceClass_200
      ViewerCertificate:
        CloudFrontDefaultCertificate: 'true'
cloudfrontoriginaccessidentity:
  Type: AWS::CloudFront::CloudFrontOriginAccessIdentity
  Properties:
    CloudFrontOriginAccessIdentityConfig:
      Comment: "some comment"

我必须创建一个origin access标识和一个具有此标识的CloudFront发行版。我们可以在一个CloudFormation脚本中或使用Serverless(使用Serverless.yml)来完成这两件事吗?

共有1个答案

张浩阔
2023-03-14

您肯定可以在同一个serverless.yml中创建一个origin访问标识和CloudFront发行版。

我已经修改了您的场景,并将OriginAccessSidEntity更改为使用FN::JOIN

myDistribution:
  Type: AWS::CloudFront::Distribution
  Properties:
    DistributionConfig:
      Origins:
      - DomainName:bucket.s3.amazonaws.com
        Id: myS3Origin
        S3OriginConfig:
          OriginAccessIdentity:
            Fn::Join:
              - ''
              -
                - 'origin-access-identity/cloudfront/'
                - Ref: cloudfrontoriginaccessidentity
      Enabled: 'true'
      Comment: Some comment
      DefaultCacheBehavior:
        ForwardedValues:
          QueryString: 'false'
          Cookies:
            Forward: none
        AllowedMethods:
        - GET
        - HEAD
        - OPTIONS
        TargetOriginId: myS3Origin
        ViewerProtocolPolicy: redirect-to-https
      PriceClass: PriceClass_200
      ViewerCertificate:
        CloudFrontDefaultCertificate: 'true'

cloudfrontoriginaccessidentity:
  Type: AWS::CloudFront::CloudFrontOriginAccessIdentity
  Properties:
    CloudFrontOriginAccessIdentityConfig:
      Comment: "some comment"

无服务器示例repo也有一个很好的例子:https://github.com/serverless/examples/blob/master/aws-node-single-page-app-via-cloudfront/serverless.yml

 类似资料:
  • 问题内容: 我想知道如何通过更新的Sails版本提供引导模板。我是否应该将JS的链接更新为其他链接。我尝试将js和图像移动到资产文件夹中,但是javascript无法正常工作。Sails文档在该主题上非常差。任何人都可以告诉一个简单的方法来集成它。提前致谢 问题答案: Sails 0.9.x已移至使用Grunt处理资产。这使您可以进行多种不同的预编译和资产处理。默认情况下,无法将自动资产注入到视图

  • 我们有Cloudformation模板,我们通过它为我们的产品部署红外资源。下面是通过CF模板创建的AWS组件:1。网络组件。如VPC、子网、安全组等。IAM角色和策略。3.EMR 4。EKS 5。MSK 6。RDS7.弹性疼痛

  • 我想用 使用请求构造函数参数的异常类型。类似这样的事情: 有没有一种方法可以创建一个供应商来传递我的参数值?

  • 问题内容: 我通常是通过pip安装python软件包的。 对于Google App Engine,我需要将软件包安装到另一个目标目录。 我试过了: pip install -I flask-restful –target ./lib 但是它失败了: 必须提供home或prefix / exec-prefix-不能同时提供 我该如何工作? 问题答案: 您正在使用OS X和Homebrew吗?Home

  • 我尝试这样设置用户: 并通过以下方式激活: 然而,我不断得到以下异常: 奇怪的是,如果我用默认用户配置它,那么一切都运行得很好: 为什么使用特定用户名的配置不能在上面工作? 我还知道,我们可以在像这样SO或这样SO这样的代码中配置凭据。 以下是关于版本的内容: 下面是配置文件:

  • 这个程序应该做什么, 我希望它显示一个空白屏幕,直到我在键盘上点击任何字符。但是它做的事情很奇怪。它显示我按的任何东西。它永远不会终止,直到我按下回车键。 据我所知,getchar()应该只读取一个字符。它不应该输出任何东西。 为什么它打印我输入的每个字符? 编辑: 为什么 getchar() 在读取一个字符后不停止,例如在这段代码中: 程序应在读取一个字符后打印完成。