Как управлять производственной, тестовой средой и средой разработки с помощью серверной инфраструктуры - PullRequest
0 голосов
/ 06 ноября 2018

Я планирую создать корпоративное приложение с использованием AWS-лямбды и безсерверного фреймворка.

Я хочу разделить среды разработки, тестирования и разработки и планирую использовать для этого хранилище параметров AWS.

Я не хочу, чтобы моя конфигурация производственной среды предоставлялась разработчикам. Если разработчик запускает команду serverless offline -s production start, производственная конфигурация не должна быть получена.

Его можно получить только после успешного развертывания функции без сервера в aws lambda.

1 Ответ

0 голосов
/ 07 ноября 2018

Вот несколько соображений, основанных на вашем вопросе:

  • Чтобы иметь различные среды на Serverless Framework, вы должны настроить сцену. Это значение может быть передано в качестве параметра при выполнении команд sls.
  • Если вы храните свой код в репо, разработчики будут иметь доступ ко всем конфигурациям. Если это действительно важно, вы можете сохранить производственную конфигурацию в репо, где только очень конкретные люди будут иметь к ней доступ, а затем вы сделаете ссылку на in в вашем serverless.yml. Пример: custom: ${file(./config/${opt:stage, 'dev'}.json)}, а затем в папке конфигурации вы создаете файл prod.json, но указывает на реальный созданный вами репо. Примечание: это усложнит поддержку вашего проекта.
  • Учитывая, что вы не хотите, чтобы ваши разработчики выполняли вашу производственную среду локально. Вы можете использовать глобальную переменную без сервера, чтобы заблокировать выполнение. Вы также можете сообщить, чтобы не делать этого.

Вот что должно быть хорошей практикой и решением, основанным на вашей проблеме:

  • Учитывая, что у вас есть производственная среда, которую вы хотите изолировать от определенной группы в вашей компании, вы должны создать VPC и настроить доступ к их ресурсам соответственно.
  • Затем вы создаете пользователей для доступа к diff. Когда ваш разработчик попытается выполнить код, обращающийся к ресурсу (например, DynamoDB) в VPC, к которому у него нет доступа, он будет заблокирован.
  • Настройка AWS для определения, какой пользователь будет выполнять команду SLS.
  • Ваша команда разработчиков по-прежнему будет иметь доступ к вашему файлу конфигурации.

    Примечание. В этом случае человеку / группе, имеющим доступ к производственному VPC, придется выполнить развертывание.

Если ответа недостаточно, не могли бы вы уточнить, какие типы ресурсов чувствительны в вашем проекте без сервера? Я считаю само собой разумеющимся, что это БД, так как это наиболее распространенный сценарий.

...