# #node.js #google-cloud-platform #github-actions #google-cloud-run
Вопрос:
Я играю с действиями Github и облачным запуском, чтобы автоматизировать свои задачи. Я создал репозиторий на Github и подготовил два рабочих процесса. Один для ДЭВА, а другой для.. давайте назовем это ПРОД-средой.
Рабочий процесс развертывает и запускает контейнер с жестко закодированными переменными:
- name: Deploy to Cloud Run run: |- gcloud run deploy ${{ env.SERVICE }} --region ${{ env.REGION }} --image gcr.io/${{ env.PROJECT_ID }}/${{ env.SERVICE }}:${{ github.sha }} [...] --set-env-vars "X=testvar1" --set-env-vars "Y=testvar2" --set-env-vars "Z=testvar3"
Проблема, с которой я сталкиваюсь, заключается в том, что среда разработки работает нормально. Всякий раз, когда я запускаю действие для разработчика, оно успешно завершается, облачная служба запуска становится зеленой, и я могу запросить свое приложение на GCP.
Когда я развертываю буквально то же самое в среде prod, этот шаг выше завершается неудачей. Когда я больше отлаживаю это, я перехожу на вкладку Переменные и секреты в экземпляре Cloud Run для этой отказавшей службы, и там эти переменные env отсутствуют. Когда я добавлю их вручную через консоль GCP и повторно разверну ит-сервис, он будет работать нормально.
Это должно быть сделано автоматически, как в среде разработки. Более того, когда я снова запускаю действие github для prod, оно заменяет изображение докера, и эти вручную установленные мной переменные env исчезают, и мне снова приходится устанавливать их вручную с помощью condole.
Никаких дополнительных настроек безопасности не производится. Это просто простое экспресс-приложение, созданное в NodeJS. Все буквально одинаково, когда дело доходит до рабочих процессов github (файлы yaml), файл Dockerfile также одинаков, проект GCP тоже.
В чем может быть причина этого?
Комментарии:
1. Вы проверили ведение журнала в облаке, чтобы узнать, есть ли какая-либо другая информация о неудачном развертывании?
2. Вы уверены, что ваша команда не усечена с помощью вашей рабочей среды?
3. Что вы используете для установки значений указанных переменных среды? Возможно ли, что они не пусты сами по себе, но в объявлении, которое вы делаете, им присваивается пустое/нулевое значение?