繁体   English   中英

是否可以使用 Serverless 在两个区域部署 API 网关和 Lambda?

[英]Is it possible to deploy API Gateway and Lambda in two regions with Serverless?

我正在使用无服务器通过 AWS 上的 API 网关部署我的 Lambda API,但看起来缺少的一件事是将 Lambda API 和 API 网关部署到不同区域的能力。 现在,如果我将区域设置为serverless deploy命令,它会在该区域中部署这两个区域,而不管我在serverless.yml文件中为 Lambda 指定了不同的区域。 所以假设你有这个文件:

service: My-Awesome-API

provider:
  name: aws
  region: eu-west-1
  runtime: nodejs12.x
  memorySize: 384

functions:
  graphql:
    handler: src/index.handler
    name: My-Awesome-GraphQL-API
    events:
      - http:
          path: graphql
          method: POST
          cors: true
      - http:
          path: graphql
          method: GET
          cors: true

然后使用此命令serverless deploy --region=eu-central-1部署 API。 Lambda 函数将部署在eu-central-1而不是eu-west-1中。

由于这很有用,并且可以在 API 网关内完成,是否也有一种方法可以在无服务器框架中指定此行为?

提供商设置中的区域只是默认设置。 通过使用--region参数,您可以覆盖该默认值,因此该行为是预期的。

Serverless 在后台基于CloudFormation ,而CloudFormation 堆栈是区域特定的,因此普通 CloudFormation 无法在跨多个区域的单个堆栈中部署资源。

(虽然你可以使用自定义资源来做到这一点,但我建议不要这样做,除了少数边缘情况。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM