首页 > 解决方案 > 如何为 aws serverles 项目使用多个自定义域?

问题描述

是否可以使用与其他自定义域不同的 lambda 函数?在 servlerless lambda 项目中,我需要一个 lambda 来使用与其他 lambda 不同的自定义域。例如, 我尝试使用以下自定义域的userNotification --> dev.xyz.com/users 所有其他人 getProducts --> dev.abc.com/products ,但它不起作用。

        userNotification:
            handler: src/index.handler
            events:
              - http:
                  method: get
                  path: /userNotification
                  cors:
                    origin: '*'
                    headers:
                      - Content-Type
                      - X-Amz-Date
                      - Authorization
                      - X-Api-Key
                      - X-Amz-Security-Token
                      - If-Match
                      - If-None-Match
            # override default customDomain
            customDomain:
              domainName: 'dev.xyz-comm-sanbox.com'
              basePath: dev-newbank
              stage: dev
              createRoute53Record: true
    

在 serverless.yml 中,我使用自定义域,这工作正常,但是我对所有 lambdas 函数都有一个 customDomains。我需要一个 lambda 来使用不同的 customDomain;

           custom:
             customDomain:
               basePath: dev-newbank
               domainName: 'dev.abc.com'
               stage: 'dev'
               createRoute53Record: true
               endpointType: regional
               securityPolicy: tls_1_2

标签: node.jsaws-lambdaaws-api-gatewayserverlesscustom-domain

解决方案


我认为你必须有 2 个不同的 serverless.ymls,1 个用于管理 /products 路径,一个用于 /users。然后,您可以为每个指定不同的域。由于所有 API Gateway 仅支持 API 上的自定义域,而不支持 API 中的单个端点,因此您必须将 lambda 拆分


推荐阅读