Без сервера до AWS - Gitlab CICD - PullRequest
0 голосов
/ 22 апреля 2020

Я занимаюсь разработкой приложения с использованием Serveless Framework и хочу развернуть его в AWS с использованием GitLab CICD.

Следуя документации с рекомендациями, я настроил одно репо со следующей структурой:

│
├── services
│   ├── customer-api
│   │    └── handler.js, serverless.yml
│   └── payment-api
│        └── handler.js, serverless.yml
│
├── serverless-common.yml
└── .gitlab-ci.yml

Таким образом, внутри папки служб у меня есть несколько папок (по одной для каждого API / лямбда). Я также установил следующий простой GitLab CI / CD

image: node:latest

stages:
  - deploy

dev:
  environment: dev
  stage: deploy
  before_script:
    - npm config set prefix /usr/local
    - npm install -g serverless
  script:
    - serverless deploy --stage dev --verbose

Проблема, с которой я столкнулся, заключается в том, что я хочу развернуть только те лямбды, которые имеют изменения.

Если я go каталог за каталогом внутри папки сервисов и запуск serverless deploy для каждого API?:

  script:
    - cd customer-api
    - serverless deploy --stage dev --verbose
    - cd ..
    - cd payment-api
    - serverless deploy --stage dev --verbose

Как вы управляете развертыванием без сервера с помощью GitLab CI / CD?

1 Ответ

1 голос
/ 27 апреля 2020

и относительно структуры вашей папки, если вы можете сделать что-то вроде этого:

│
├── services
│   ├── customer-api
│   │    └── handler.js, customer-api.yml
│   └── payment-api
│        └── handler.js, payment-api.yml
│
├── serverless.yml
└── .gitlab-ci.yml

и дать ссылки на эти функции в основном файле serverless.yml, например:

functions:
  customer-api: ${file(./services/customer-api/customer-api.yml)
  payment-api: ${file(./services/payment-api/payment-api.yml)

тогда вам не нужно go внутри каждой папки для запуска файла serverless.yml:

script:
     - serverless deploy --stage dev --verbose

будет информация. Для получения дополнительной информации вы можете проверить здесь

...