Amazon web services 如何在AWS SAM云中使用Route53设置自定义域名

Amazon web services 如何在AWS SAM云中使用Route53设置自定义域名,amazon-web-services,yaml,amazon-cloudformation,serverless,aws-sam,Amazon Web Services,Yaml,Amazon Cloudformation,Serverless,Aws Sam,原始问题:如何在SAM云形成中从AWS APIGateway域名中获取RegionalDomainName 编辑:我改变了问题,希望这个答案能获得更多的流量,因为它回答了几个问题,而不仅仅是我原来的问题 当我尝试部署堆栈时,出现以下错误: 资源域名不支持Fn::GetAtt中的属性类型regionalDomainName 我的yml文件如下所示: PublicApi: Type: AWS::Serverless::Api Properties: Name: Pub

原始问题:如何在SAM云形成中从AWS APIGateway域名中获取RegionalDomainName

编辑:我改变了问题,希望这个答案能获得更多的流量,因为它回答了几个问题,而不仅仅是我原来的问题

当我尝试部署堆栈时,出现以下错误:

资源域名不支持Fn::GetAtt中的属性类型regionalDomainName

我的yml文件如下所示:

  PublicApi:
    Type: AWS::Serverless::Api
    Properties:
      Name: PublicApi
      ...
      EndpointConfiguration: REGIONAL

  DomainName:
    Type: AWS::ApiGateway::DomainName
    Properties:
      RegionalCertificateArn: "arn:aws:acm:${Region}:XXXXXXXXXXX:certificate/XXXXXXXXXXXXX"
      DomainName: !Sub ${Stage}.${name}
      EndpointConfiguration:
        Types:
          - REGIONAL

  myDNSRecord:
    Type: AWS::Route53::RecordSet
    Properties:
      HostedZoneId : Z1UJRXOUMOOFQ8
      Name: !Sub ${Stage}.${name}
      AliasTarget:
        HostedZoneId: Z1UJRXOUMOOFQ8 
        DNSName: !GetAtt DomainName.regionalDomainName
      Type: A

  UrlMapping:
    Type: AWS::ApiGateway::BasePathMapping
    DependsOn:
      - PublicApi
    Properties:
      DomainName: !Ref DomainName
      RestApiId: !Ref PublicApi
      Stage: !Ref Stage

下稿摘自:

区域域名 与此自定义域名的区域终结点关联的域名。您可以通过添加将自定义域名指向此区域域名的DNS记录来设置此关联

我很困惑,我需要做什么,使这个域名区域

我在不同的迭代中也遇到了以下错误,我认为这应该解决:

当区域处于活动状态时,无法为边缘导入证书


在此方面的任何帮助都将不胜感激

我从几个不同的论坛上找到了不同问题的不同解决方案,并最终提出了一个工作模型。我希望这对将来的人有所帮助

  PublicApi:
    Type: AWS::Serverless::Api
    Properties:
      Name: PublicApi
      StageName: ApiStage
      ...
      EndpointConfiguration: REGIONAL

对我来说,关键在于BasePathMapping中的DependsOn。

我从几个不同的论坛中找到了不同问题的不同解决方案,并最终提出了一个工作模型。我希望这对将来的人有所帮助

  PublicApi:
    Type: AWS::Serverless::Api
    Properties:
      Name: PublicApi
      StageName: ApiStage
      ...
      EndpointConfiguration: REGIONAL
对我来说,关键的一点是BasePathMapping中的DependsOn