使用AWS SAM

问题描述

我无法使用AWS SAM将自定义域名与api网关配合使用来部署到云形成并创建所需的资源。这是我模板的相关部分

  PrivateApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: !Sub "${Env}"
      Cors: "'*'"
      EndpointConfiguration:
        Type: REGIONAL
      Domain:
        DomainName: api.vrsb.tibblist.com
        CertificateArn: (censored)
        EndpointConfiguration: REGIONAL
        Route53:
          HostedZoneId: Z02959893T52LBTIBENSX
      Auth:
        DefaultAuthorizer: MyCognitoAuthorizer
        Authorizers:
          MyCognitoAuthorizer:
            UserPoolArn: !GetAtt UserPool.Arn

这将创建一个指向d-62jom4rgdd.execute-api.us-east-2.amazonaws.com的域名配置 并且确实在域名上设置了到我的后端api dev阶段的映射,但是不起作用。 https://i.imgur.com/61lSFgQ.png 路线53还创建了指向d-62jom4rgdd.execute-api.us-east-2.amazonaws.com的记录,但实际的执行api URL为https://i.imgur.com/xiueiqY.png

解决方法

如果您想从 API 访问它,您需要确保您使用的证书部署在 us-east-1 中。

无论您是在 us-east-1 中重新创建整个 API 还是只是移动证书,您仍然需要在 us-east-1 中创建和验证您的证书。幸运的是,如果您使用 DNS 验证,相同的记录将适用于两个区域。