繁体   English   中英

AWS 使用 api 网关部署 Cloudfront

[英]AWS deploy Cloudfront with api gateway

最近我试图部署一个 lambda function 和一个 Cloudfront 发行版以及一个带有 SAM 的 CloudFormation yaml 模板。 但是,由于在实际部署之前我没有 API 网关的 ID,因此我被 CloudFormation 中的DomainName卡住了。

因此,我尝试使用 .Sub .Sub "${ServerlessRestApi}.execute-api:${AWS:.Region}.amazonaws.com/Prod/"作为DomainName将 API 网关与 CF 分发链接,但我得到以下信息错误:

Resource handler returned message: "Invalid request provided: The parameter origin name must be a domain name.

我的代码如下所示:

AWSTemplateFormatVersion: 2010-09-09
Description: >-
  cf-apigw-lambda-dynamodb

Transform:
- AWS::Serverless-2016-10-31

Resources:
  getHeadersFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: src/handlers/get-items.getItemsHandler
      Runtime: nodejs14.x
      Architectures:
        - x86_64
      MemorySize: 128
      Timeout: 100
      Description: Get all items
      Events:
        Api:
          Type: Api
          Properties:
            Path: /items
            Method: GET
  CloudfrontDistribution:
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Origins:
          - DomainName: !Sub "${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/"
            Id: ApiOrigin
            CustomOriginConfig:
              HTTPPort: 80
              HTTPSPort: 443
              OriginProtocolPolicy: https-only
        Enabled: true
        DefaultCacheBehavior:
          TargetOriginId: ApiOrigin
          ViewerProtocolPolicy: redirect-to-https
          CachePolicyId: c17edf1f-cb61-49d6-979d-39f05ba95f91
          OriginRequestPolicyId: c57eds1f-c8d1-4544-b8ce-6f4307e30d2e

Outputs:
  WebEndpoint:
    Description: "API Gateway endpoint URL for Prod stage"
    Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/"

您不能在DomainName中包含/Prod/

DomainName: !Sub "${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM