Как развернуть бессерверный проект размером более одного стека CloudFormation, когда лямбда-функции имеют псевдонимы - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь развернуть файл yaml без сервера, который не помещается в один стек CloudFormation. Поиск в Интернете, кажется, есть плагины для этого. До сих пор я тестировал serverless-plugin-split-stacks. Это работает, но ...

Мне удалось развернуть мой проект, который включает в себя более 200 ресурсов CloudFormation (я не смог бы сделать это без вышеупомянутого плагина). Просто мне нужно использовать плагин serverless-aws-alias. Ранее, без плагина serverless-plugin-split-stacks, я развертывал свой проект, а плагин serverless-aws-alias создавал для меня псевдонимы без каких-либо проблем.

Но теперь (после добавления плагина serverless-plugin-split-stacks) лямбда-функция созданы без псевдонимов. Я заглянул в список стека CloudFormation и вижу, что стек для псевдонима, но по-прежнему не создан псевдоним для лямбды.

Мне было интересно, удалось ли кому-нибудь развернуть функцию без сервера с более чем одной стек при использовании плагина serverless-aws-alias!?

[ОБНОВЛЕНИЕ]

Вот простой тестовый пример:

service: serverless-test

provider:
  name: aws
  runtime: nodejs12.x
  endpointType:                                REGIONAL

plugins:
- serverless-plugin-split-stacks
- serverless-aws-alias

custom:
  splitStacks:
    nestedStackCount: 20
    perFunction: false
    perType: false
    perGroupFunction: true

functions:
  create:
    handler: code.get
    events:
      - http:
          path: /
          integration:                           lambda
          method: get
          cors: true

Если вы развернете это Файл serverless.yml выглядит так:

sls deploy --region us-east-1 --stage dev --alais dev

Созданные лямбда-функции не будут иметь псевдонимов (как и должно быть). И это версия пакетов, которые я использую:

$ sls -v
Framework Core: 1.61.2
Plugin: 3.6.6
SDK: 2.3.0
Components Core: 1.1.2
Components CLI: 1.4.0

$ cat ./package.json 
{
  "name": "serverless-test",
  "version": "1.0.0",
  "description": "",
  "main": "code.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "serverless-aws-alias": "^1.8.0",
    "serverless-plugin-split-stacks": "^1.9.3"
  }
}
...