Как мне создать секретный файл awsconfiguration.json в CI?

Я использую AWS ampify для создания серверной части своего приложения для iOS.

Я создал 4 среды DTAP в бэкэнде с 4 различными конфигурациями и использую сценарий выполнения для переключения на правильные версии awsconfiguration.json и amplifyconfiguration.json во время компиляции на основе выбранной схемы.

Поскольку эти автоматически сгенерированные файлы конфигурации содержат ряд секретов и ключей API, я держу их подальше от системы управления версиями в моем .gitignore, поскольку это было бы точкой отказа, и я не хочу раскрывать весь свой бэкэнд в этом способ.

Локально это работает нормально, но когда я запускаю свой CI на Bitrise, сборка завершается ошибкой, поскольку этих файлов конфигурации нет. Мне нужно найти способ передать эти файлы конфигурации AWS и Amplify в CI, чтобы иметь возможность создавать свои тестовые сборки.

Если я проявляю чрезмерную осторожность и файлы конфигурации действительно можно хранить в системе контроля версий (т.е. не в секрете), дайте мне знать. Я действительно не хочу настраивать секреты как отдельные переменные среды, поскольку Amplify будет иметь несколько секретов и конечных точек для каждой среды, которая мне нужна, и мне кажется слишком запутанным и сложным иметь сценарий, создающий эти файлы конфигурации в качестве этапа CI.

Вещи, которые я пробовал:

  • Создание фиктивных файлов конфигурации с поддельными секретами, которые копируются во время компиляции - это не удается, потому что скрипт времени компиляции все еще пытается скопировать несуществующие файлы конфигурации для реальной среды
  • Использование индивидуальных переменных среды в качестве секретов в Bitrise - это, вероятно, сработает, но для моего стартапа из одного разработчика потребуется огромная работа по поддержанию
  • Прикосновение к поддельному файлу конфигурации для копирования - это работает, но означает, что фактическая инфраструктура AWS не работает в тестовых сборках.

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

Спасибо

Иаков


person Jacob Bartlett    schedule 02.10.2020    source источник


Ответы (1)


Я бы рекомендовал использовать Generic File Storage и соответствующий шаг для их загрузки. Это добавит их в вашу сборку, и вы сможете разместить их там, где они должны быть, до того, как проект будет скомпилирован.

person they-them    schedule 11.12.2020