Вы можете условно выбрать значения в serverless.yml, сохранив условные функции в пользовательской переменной, такой как
### serverless.yml
provider:
name: << aws or your provider >>
runtime: << your runtime, eg nodejs8.10 >>
region: << your aws region >>
stage: ${opt:stage, 'dev'}
custom:
extraCode:
dev:
testing: ${file(testing_only/testing_endpoints.yml)}
prod:
...
## and then at the functions section of serverless.yml
functions:
- ${file(functions/someFunctionsInAFile.yml)}
- ${file(functions/someMoreFunctions.yml)}
- ${self:custom.extraCode.${self:provider.stage}}
При развертывании без сервера вы должны передать параметр командной строки --stage=myStageName
, чтобы припередайте --stage=dev
или --stage=prod
, последняя строка в разделе функций будет пустой и ничего не будет развернуто.
Если вы введете --stage=testing
, последняя строка в разделах функций будет заполнена файломустановите в разделе пользовательских переменных, а затем ваш тестовый код будет развернут.