Создание соединения CNAME AWS RecordSet / Custom Domain с API в SAM - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь использовать Route53 и пользовательские домены, чтобы связать URL-адрес, который у меня есть, и шлюз API, который является Lambda Proxy, под ним.

Это то, что у меня есть в моем файле SAM:

MyApiCertificate:
  Type: 'AWS::CertificateManager::Certificate'
  Properties:
    DomainName: example.com
MyApiDomainName:
  Type: 'AWS::ApiGateway::DomainName'
  Properties:
    RegionalCertificateArn: !Ref MyApiCertificate
    DomainName: example.com
MyApiBasePathMapping:
  Type: 'AWS::ApiGateway::BasePathMapping'
  Properties:
    RestApiId: !Ref PublicApi
    DomainName: !Ref MyApiDomainName
    BasePath: /
    Stage: stage
MyApiRoute53RecordSetGroup:
  Type: AWS::Route53::RecordSetGroup
  Properties:
    HostedZoneName: example.com
    RecordSets:
      - Name: example.com
        Type: A
        AliasTarget:
          EvaluateTargetHealth: false
          HostedZoneId: !GetAtt MyApiDomainName.DistributionHostedZoneId
          DNSName: !GetAtt MyApiDomainName.DistributionDomainName

Я хотел бы сделать это типа CNAME и иметь URL-адрес stage.example.com

Следующий код не работает.

MyApiCertificate:
  Type: 'AWS::CertificateManager::Certificate'
  Properties:
    DomainName: example.com
MyApiDomainName:
  Type: 'AWS::ApiGateway::DomainName'
  Properties:
    RegionalCertificateArn: !Ref MyApiCertificate
    DomainName: example.com
MyApiBasePathMapping:
  Type: 'AWS::ApiGateway::BasePathMapping'
  Properties:
    RestApiId: !Ref PublicApi
    DomainName: !Ref MyApiDomainName
    BasePath: /
    Stage: stage
MyApiRoute53RecordSetGroup:
  Type: AWS::Route53::RecordSetGroup
  Properties:
    HostedZoneName: example.com
    RecordSets:
      - Name: stage.example.com
        Type: CNAME
        AliasTarget:
          EvaluateTargetHealth: false
          HostedZoneId: !GetAtt MyApiDomainName.DistributionHostedZoneId
          DNSName: !GetAtt MyApiDomainName.DistributionDomainName

Я получаю эту ошибку: Cannot import certificates for REGIONAL while EDGE is active. (Service: AmazonApiGateway; Status Code: 400; Error Code: BadRequestException; Request ID: XXXXXXXXXXXXXXXXXXXXXXXX)

Хотя у меня нет ничего, кроме EDGE Api Gateway, и у меня нет нужного имени (Stage.example.com)

Буду признателен за любую помощь по этому вопросу. !

...