将两个AWS Lambda函数指向同一个域

时间:2019-10-22 11:41:11

标签: aws-lambda serverless-framework aws-serverless serverless-plugins

我正在使用无服务器框架和AWS Lambdas将两个具有不同路径名(/message/subscribe)的功能部署到位于form.example.com的子域。

我正在为无服务器使用serverless-domain-manager插件,并使用/messageserverless create_domain功能成功配置了我的域,但是由于我还需要为/subscribe做此操作尝试遵循相同的过程来接收域已存在的消息,并捕获到错误Error: Unable to create basepath mapping.

在翻转配置(createRoute53Record: false)并重新运行后,它开始起作用,但是现在当我为sls deploy函数运行/message时,我得到了以前看到的错误消息为/subscribe

错误(来自sls deploy):

layers:
  None

  Error --------------------------------------------------

  Error: Unable to create basepath mapping.


     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

这是我对serverless-domain-manager的配置:

plugins:
  - serverless-offline
  - serverless-domain-manager

custom:
  transactionDomain:
    dev: ${file(./local-keys.yml):transactionDomain}
    prod: ${ssm:mg-production-transaction-domain~true}
  newsletterDomain:
    dev: ${file(./local-keys.yml):newsletterDomain}
    prod: ${ssm:mg-production-newsletter-domain~true}
  apiKey:
    dev: ${file(./local-keys.yml):apiKey}
    prod: ${ssm:mg-production-api-key~true}
  customDomain:
    domainName: form.example.com
    certificateName: 'www.example.com' //sub-domain is included in the certificate
    stage: 'prod'
    createRoute53Record: true

这与将两个功能部署到同一域有关吗?是否有适当的流程来允许这种情况发生?

1 个答案:

答案 0 :(得分:0)

如果您不需要API网关特定的功能,例如使用计划。您可以在每个路径路由的ALB后面放置两个lambda。