Как я могу транзитивно ссылаться на внешние файлы с безсерверным? - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь сделать некоторые переходные ссылки на файлы в моем serverless.yml, но кажется, что serverless всегда разрешает ссылки на основе файла serverless.yml независимо от того, где находятся другие ссылочные файлы. Пример:

serverless.yml:

...
resources:
  - ${file(./cloud-formation-resources/my-dashboard.yml)}

./cloud-formation-resources/my-dashboard.yml:

Resources:
  MyDashboard:
    Type: AWS::CloudWatch::Dashboard
    Properties:
      DashboardName: My
      DashboardBody: ${file(./cloud-formation-resources/dashboard-body-my.js):dashboardBodyMy}

./cloud-formation-resources/dashboard-body-my.js:

module.exports.dashboardBodyMy = (serverless) => {
 const fsPromises = require('fs').promises
 return fsPromises.readFile('./cloud-formation-resources/dashboard-body-my.json', 'utf-8')
};

./cloud-formation-resources/dashboard-body-my.json :

{
    "widgets": [
        ...
    ]
}

Должен ли я поместить все мои файлы ресурсов в один каталог с моим serverless.yml? Единственная ссылка , которую я нашел по этому поводу:

Популярная Serverless Framework создана для развертывания только файлов внутри каталога, в котором содержится файл serverless.yml.

Это ограничение, вероятно, задуманно - весь внешний код, который нужен вашему Lambda, обычно может быть включен в менеджер пакетов.

1 Ответ

2 голосов
/ 12 марта 2020

Безсерверная структура предполагает, что все включенные файлы должны находиться в том же каталоге, что и serverless.yml, но во многих сценариях ios обычно требуются внешние файлы.

Для этого вы можете использовать плагин serverless-package-external для простого добавления ссылок на эти файлы (об этом вы можете прочитать в том же посте в блоге , на который вы ссылались).

...