微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

serverless create_domain-无法创建自定义域

如何解决serverless create_domain-无法创建自定义域

我试图使用serverless-domain-manager将无服务器部署到AWS上的自定义域,但是每次我运行serverless create_domain时,都会收到通用错误“无法创建自定义域”。这是我已采取的步骤以及yml的内容

  1. 在AWS上注册的域
  2. 在路线53中设置托管区域
  3. 在AWS的证书管理器中为* .mydomain.com创建证书
  4. 创建具有管理员权限的iAM用户
  5. 使用iAM用户密钥运行AWS配置

.yml

service: service-name

plugins:
  - serverless-apigw-binary
  - serverless-apigwy-binary
  - serverless-content-encoding
  - serverless-api-cloudfront
  - serverless-plugin-tracing
  - serverless-domain-manager

custom:
  apigwBinary:
    types:          
      - 'image/jpeg'
      - 'text/html'
      - 'text/css'
      - 'application/javascript'
      - 'application/x-javascript'
      - '*/*'
  contentEncoding:
    minimumCompressionSize: 0 
  stage: ${opt:stage,self:provider.stage}
  domains:
    prod: api.mydomain.com
    test: api-test.mydomain.com
    dev: api-dev.mydomain.com
  customDomain:
    basePath: ""
    domainName: ${self:custom.domains.${self:custom.stage}}
    stage: "${self:custom.stage}"
    createRoute53Record: true
    certificateArn: "cert-arn"
    hostedZoneId: "zone-id"
provider:
  name: aws
  runtime: nodejs12.x
  endpointType: regional
  region: ap-southeast-2
  memorySize: 3008
  timeout: 300
  tracing: true
  iamRoleStatements:
    - Effect: 'Allow'
      Action:
        - 'xray:PutTraceSegments'
        - 'xray:PutTelemetryRecords'
        - 'lambda:InvokeFunction'
      Resource:
        - '*'  

package:
  exclude:
    - node_modules/aws-sdk/**
    - .vscode/**
    - bin/**
    - obj/**

functions:
  api:
    warmup: true
    handler: index.handler
    events:
      - http: ANY /
      - http: 'ANY {proxy+}'    

每次运行serverless create_domain时,我都会得到相同的通用错误,而没有任何额外的信息。

谢谢

解决方法

正如埃里科(Erico)指出的那样,您可以通过SLS_DEBUG获得更多信息。可能是您的域证书有问题,并且调试消息会告诉您。

就我而言,这似乎是一个证书问题,因为它在另一个AWS区域中,所以sls create_domain找不到它。总体而言,这是一个相当令人困惑的体验。

检查endpointType选项:

customDomain:
  ...
  endpointType="regional"

https://github.com/amplify-education/serverless-domain-manager/issues/46

https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-api-gateway-supports-regional-api-endpoints/

,

就我而言,我的托管区域在另一个 AWS 账户中,因此 createRoute53Record: true 未能创建 route53 记录,因此出现一般错误。

更改为 createRoute53Record: false 为我修复了错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。