Настроить автодеплой
В процессе разработки приложения приходится регулярно вносить изменения в код и пушить (git push) их в репозиторий.
Чтобы поддерживать код в Облачных функциях всегда в актуальном состоянии, можно настроить автодеплой. Для этого нужно:
- Получить RC-файл.
- Создать функцию с вашим приложением в панели управления Облачной платформой.
- Создать функцию автодеплоя в панели.
- Настроить webhook в репозитории на GitHub.
Получение RC-файла
Чтобы настроить внешний доступ к проекту, нужно получить переменные окружения из RC-файла.
Для этого в панели управления Облачной платформой:
- Создайте пользователя и добавьте его в проект по инструкции Управление доступом пользователей.
- Перейдите в раздел Доступ проекта на вкладку Внешний доступ. Выберите пользователя и скачайте RC-файл.
Создание функции с приложением
Код автодеплоя должен обновлять функцию с кодом вашего приложения. Для этого нужно создать в панели управления функцию и загрузить в нее архив с приложением.
Для этого в панели управления:
- Перейдите в раздел Функции и нажмите Создать функцию.
- Выберите нужную среду выполнения и введите имя функции, например
my_app
. - Перейдите на вкладку Код функции. В поле Загрузить выберите Архив.
- В поле Код функции нажмите Загрузить и задеплойте архив своего приложения.
Теперь функцию my_app
будет обновлять автодеплой.
Создание функции автодеплоя
Чтобы создать функцию, в которой будет храниться код автодеплоя:
- Скачайте исходный код с GitHub как архив (Code → Download ZIP).
- Перейдите в панели управления в раздел Функции и нажмите Создать функцию.
- Выберите среду выполнения Python 3.7 и введите имя функции, например
autodeploy
. - Перейдите на вкладку Код функции. В поле Загрузить выберите Архив.
- В поле Код функции нажмите Загрузить и загрузите ZIP-файл.
- Укажите Путь к файлу:
deploy_function/deploy
. - В поле Вызываемая функция введите
deploy
. - В поле Переменные окружения нажмите кнопку Добавить.
- Введите данные о вашем репозитории, из которого будет обновляться код, а также данные из RC-файла:
ACTION_NAME
— имя вашей функции с приложением (my_app
);DEPLOY_TOKEN
— указывается при условии, что репозиторий приватный. Если репозиторий публичный, то переменную можно не добавлять;REPO_URL
—github.com/{username}/{repository}
;BRANCH
— имя ветки с кодом, готовым для деплоя;OS_PROJECT_DOMAIN_NAME
;OS_PROJECT_ID
;OS_USER_DOMAIN_NAME
;OS_USERNAME
;OS_PASSWORD
;OS_AUTH_URL
.
- Нажмите кнопку Сохранить и развернуть.
- Перейдите на вкладку Триггеры, включите вызов по HTTP-запросу и скопируйте появившийся URL — он понадобится на следующем этапе.
Теперь при вызове функции autodeploy
код вашего приложения my_app
будет автоматически обновляться.
Настройка webhook в репозитории на GitHub
На этом этапе нужно объединить репозиторий на GitHub и функцию autodeploy
— для этого настройте в репозитории GitHub вебхук (webhook), который при пуше в репозиторий будет вызывать функцию autodeploy
через HTTP-запрос.
- Перейдите в свой репозиторий на GitHub.
- Откройте Settings → Webhooks.
- Нажмите кнопку Add webhook.
- В поле Payload URL вставьте URL функции
autodeploy
. - В поле Content type выберите application/json.
- В поле Which events would you like to trigger this webhook? выберите Just the push event.
- Нажмите Update webhook.
Результат настройки
Автодеплой настроен. После того как вы запушите изменения в репозиторий, вебхук вызовет функцию autodeploy
— при этом она обновит функцию с приложением my_app
.
Чтобы проверить, что автодеплой работает и функция my_app
обновляется, вызовите функцию my_app
— она должна возвращать данные в соответствии с изменениями в коде.