Я пытаюсь внедрить приложение без сервера в AWS. Я хочу знать, как организовать мои коды. Допустим, я хочу, чтобы в git-репозитории было организовано несколько лямбда-функций, каждая лямбда-функция и связанные с ней коды находятся в своей собственной подпапке.
Это то, что я пробовал, отдельные подпапки для каждой лямбда-функции:
(venv367) dummy@dummy-VirtualBox:~/workspace/serverless-apps/DEVOPS-dailybackup-ebs$ ls -l
total 28
-rw-rw-r-- 1 dummy dummy 4061 Jan 13 19:23 index.js
drwxrwxr-x 3 dummy dummy 4096 Jan 13 19:23 node_modules
-rw-rw-r-- 1 dummy dummy 352 Jan 13 19:23 package.json
-rw-rw-r-- 1 dummy dummy 392 Jan 13 19:23 package-lock.json
-rw-rw-r-- 1 dummy dummy 1220 Jan 14 00:10 README.md
(venv367) dummy@dummy-VirtualBox:~/workspace/serverless-apps/DEVOPS-dailybackup-s3$ ls -l
total 28
-rw-rw-r-- 1 dummy dummy 4061 Jan 13 19:23 index.js
drwxrwxr-x 3 dummy dummy 4096 Jan 13 19:23 node_modules
-rw-rw-r-- 1 dummy dummy 352 Jan 13 19:23 package.json
-rw-rw-r-- 1 dummy dummy 392 Jan 13 19:23 package-lock.json
-rw-rw-r-- 1 dummy dummy 1220 Jan 14 00:10 README.md
В проекте верхнего уровня у меня есть SAM template.yaml, как показано ниже
(venv367) dummy@dummy-VirtualBox:~/workspace/serverless-apps$ ls -l
total 16
drwxrwxr-x 3 dummy dummy 4096 Jan 14 05:14 00_DEVOPS-dailybackup-ebs
drwxrwxr-x 3 dummy dummy 4096 Jan 14 05:14 00_DEVOPS-dailybackup-s3
-rw-rw-r-- 1 dummy dummy 702 Jan 14 05:15 packaged.yaml
-rw-rw-r-- 1 dummy dummy 1402 Jan 13 23:45 README.md
-rw-rw-r-- 1 dummy dummy 939 Jan 14 05:15 template.yaml
В файле template.yaml я развертываю функции Lambda, указав Handler с его родительским каталогом
Resources:
EbsBackupFunction:
Type: AWS::Serverless::Function
Properties:
Handler: DEVOPS-dailybackup-ebs/index.handler
Runtime: nodejs8.10
FunctionName: DEVOPS-dailybackup-ebs
S3BackupFunction:
Type: AWS::Serverless::Function
Properties:
Handler: DEVOPS-dailybackup-s3/index.handler
Runtime: nodejs8.10
FunctionName: DEVOPS-dailybackup-s3
(1) Хотя я не рассматривал безсерверную инфраструктуру подробно. Есть ли лучший подход для управления безсерверными приложениями с помощью AWS SAM?
(2) Есть ли способ выполнить npm-установку для кода nodejs в каждой подпапке, кроме написания сценария для 'cd $ {dir} && npm install'
(3) Если выше - плохая идея, вы можете сказать мне, что бы вы сделали?
Ткс заранее за любую помощь.