Я использую AWS для упаковки своего лямбда-кода и зависимостей node10.x для своего сайта. У меня есть репозитории git, разбитые по функциям, так что у меня есть репо, посвященное моим лямбдам rest-auth в качестве примера (я все еще активно разрабатываю это, поэтому есть несколько отсутствующих файлов buildspec и функций).
Мой репозиторий git имеет следующий макет:
.
├── buildspec
│ ├── postmark.yml
│ ├── rest-auth-login.yml
│ ├── rest-auth-password-link.yml
│ └── rest-auth-register.yml
├── function_code
│ ├── login.js
│ ├── password-link.ext
│ ├── postmark.js
│ ├── register.js
│ └── rgistration-confirm.js
├── .gitignore
└── README.md
Прямо сейчас, когда я отправляю обновление на github, срабатывают все 4 конфигурации buildspec и создают 4 zip-файла в моем ведре S3, из которых мои лямбда-выражения могут читать.
Однако все 4 zip-файла воссоздаются, даже если есть изменения только в ОДНОМ из их базового кода - я знаю, что могу разделить каждую функцию на собственное репо, но есть ли способ настроить AWS CodeBuild, чтобы запускать обновления только для заданного buildspec, если в репо изменяются определенные файлы?
Т.е. запускать postmark.yml
только если файл postmark.js
изменен?
Пример postmark.yml
version: 0.2
phases:
install:
runtime-versions:
nodejs: 10
commands:
- npm install postmark
artifacts:
files:
- 'function_code/postmark.js'
- 'node_modules/**/*'