Получение заявки в руки первых пользователей — лучшее чувство. Видя, что они попробуйте приложение впервые и собирать обратную связь от них для будущего улучшения, всегда чувствовали меня очень полезны. Для приложений для серверов это обычно означает, что приложение где-то развернуто — опубликовано в Интернете.
Сегодня я хочу поделиться одним быстрым способом для получения приложений Kotlin, построенный с KTOR в Интернете: Использование Heroku Отказ
Как PAAS (платформа как услугу), Heroku заботится о большинстве административных задач, чтобы мы не должны были. Вещи, как держать свою платформу в актуальном и безопасном, управлять сетевым стеком и многое другое.
Я лично наслаждаюсь Heroku, потому что их свободный уровень Значит, я могу опубликовать приложения без контора. Кроме того, я также могу сказать, что мое приложение работает В облаке С первого дня! 😉🌩.
Если вы также хотите узнать, как развернуть свое приложение Kotlin прямо из локального хранилища Git, возьмите 10 минут И позвольте мне вести вас через шаги для получения вашего первого приложения Kotlin онлайн на Heroku!
Подписаться на Heroku & Настройка Heroku Cli 🛠
Перед тем, как мы даже создаем наше демонстрационное заявление о демонских, это хорошая идея, чтобы настроить нашу среду — начать с создания учетной записи Heroku. Мы можем сделать это, просто посетив свою страницу регистрации в http://signup.heroku.com/ . Свободный план Что обеспечивается по умолчанию, более чем достаточно для наших целей (даже с его ограничения ), поэтому нам не нужно добавлять какую-либо платежную информацию.
После создания нашей учетной записи мы следуем установим Интерфейс командной строки Heroku (CLI) , что позволит нам создавать и управлять нашими приложениями Heroku.
Инструкции по установке для Heroku CLI немного варьируются между операционными системами, поэтому лучше всего следовать официальному и актуальному Инструкции На веб-сайте Heroku для их установки.
Чтобы убедиться, что наша установка была успешной и аутентифицировать CLI с нашей учетной записью, которую мы создали несколько пунктов назад, мы запускаем Heroku
Команда на нашем терминале один раз и следуйте инструкциям на экране.
С этой единовременной установкой выйдите из пути, мы готовы подготовить наше приложение!
Создание нашего приложения KTOR ✨
Давайте создадим быстрое примера приложения, которое мы позжем настроили для развертывания. Если у вас уже есть свой собственный проект KTOR, который вы хотите развернуть в Heroku, вы можете двигаться непосредственно на следующий раздел.
Существует несколько простых способов создания нового проекта Kotlin с KTOR. Например, мы можем использовать онлайн Генератор проекта KTOR или Ktor intellij идея плагин — И на самом деле оба инструмента даже подвергаются той же настройке конфигурации. Для этого примера мы собираемся настроить наш проект через Ktor intellij идея плагин , к которому можно получить доступ через файл | Новый … |. Проект после его установки.
Для последующей связи с фрагментами кода включите опцию «Gradle Kotlin DSL» для проекта и добавьте функцию «маршрутизации».
На следующих страницах мы вводим имя проекта и артефакт ID нашего выбора.
После того, как импорт Грели закончился, у нас на самом деле уже есть готовый к проекту «Hello World», работающий на KTOR. Мы можем проверить свой исходный код, навигацию на Application.kt
Файл в нашем SRC
Справочник, где мы должны увидеть что-то вроде этого:
fun main(args: Array): Unit = io.ktor.server.netty.EngineMain.main(args) @Suppress("unused") // Referenced in application.conf @kotlin.jvm.JvmOverloads fun Application.module(testing: Boolean = false) { routing { get("/") { call.respondText("HELLO WORLD!", contentType = ContentType.Text.Plain) } } }
Как видно, эта простая программа KTOR определяет один Маршрут , /
, который отвечает на http Получить
Запросы со словами ПРИВЕТ, МИР!
.
Нажав кнопку «Запустить» в канаве рядом с основной функцией и навигации по http://localhost: 8080/
Мы можем попробовать приложение локально:
Теперь пришло время установить наше небольшое приложение, настроенное для бега на облаке Героку!
Настройка нашего приложения KTOR для развертывания Heroku ⚙️
Чтобы развернуть наше приложение к Heroku, наше приложение должно сделать три вещи:
- Это должно уважать
Порт
Переменная среды : При запуске нашего приложения Heroku Присваивает наше приложение порта на котором слушать входящие запросы, а Маршрутизаторы Heroku Затем позаботьтесь о том, чтобы принести HTTP-трафик на наше приложение на этот порт. - Это должно обеспечить
Этап
задача : Когда мы развертываем наше приложение, Heroku запускает задачу Rickle под названиемЭтап
превратить нашу программу в исполняемый файл. - Это должно обеспечить
Procfile
: Когда Heroku начинает наше приложение для обработки входящих запросов, этот файл указывает команду (ы), которая будет запущена — в нашем случае запустите компиляционное приложение.
Переменная среды порта
Здесь нам повезло — приложение, созданное мастером KTOR, уже настраивает наше приложение для уважения Порт
Переменная среды. Мы видим это в Application.conf
в Ресурсы
Справочник нашего проекта. Это Hocon Файл отвечает за основное поведение нашего приложения. И, как мы видим, он устанавливает порт по умолчанию нашего приложения на 8080, необязательно переопределял его с содержанием Порт
Переменная среды, когда она присутствует:
ktor { deployment { port = 8080 port = ${?PORT} } application { modules = [ io.sebi.ApplicationKt.module ] } }
Это именно то, что мы хотим: при разработке локально наше приложение всегда присваивается тот же порт ( 8080
), а при развертывании в систему, где A Порт
Переменная среды устанавливается, как Heroku, настройки платформы уважаются.
Задача родины сцены
При развертывании любого типа приложения к Heroku платформа запускает так называемую Buildpack — инструмент, который превращает исходный код нашего проекта в исполняемый файл, который в конечном итоге прогонствует на платформе Heroku. Для Грейл Приложения, Buildpack Heroku ищет Этап
Задача для создания исполняемых артефактов из нашего кода. К счастью для нас, уже предварительно отремонтированная рослай Плагин приложений уже приходит с задачей под названием installdist
который имеет именно это.
Все, что нам нужно сделать, это создать псевдоним для installdist
Задача под названием сцена
. Если вы выбрали Gradle Kotlin DSL, как было предложено ранее в руководстве, вы можете просто добавить этот фрагмент в нижней части проекта build.gradle.kts
файл:
tasks.create("stage") { dependsOn("installDist") }
Procfile.
Героку Механизм Procfile Сообщает платформу, которую приложение должно быть выполнено при запуске нашего приложения.
По сути, мы хотим указать этот файл на выходе, сгенерированным Этап
Задача, которую мы настроили на предыдущем шаге. В точке, когда Procfile призывает, наше Этап
Задача будет создана наше приложение и создала сценарий запуска в Build/Install/ProjectName/Bin/ProjectName
. Мы можем просто указать на этот скрипт, чтобы запустить нашу приложение.
В корне нашего проекта давайте создадим файл под названием Procfile
и добавить следующий контент (подстановка название проекта
Ибо вы догадались, название нашего проекта):
web: ./build/install/projectName/bin/projectName
(Если вы не помните точное имя, вы дали свой проект, вы можете заглянуть в Settings.gradle.kts
или запустить этап
Задача один раз, и расследовать структуру папки внутри Установить
.)
Наше приложение теперь настроено для развертывания на Heroku! На данный момент единственное, что стоит между нами и опубликованным приложением, является фактическим процессом развертывания.
На самом деле развертывание нашего приложения 📦
Настройка локального репозитория GIT
Основной метод получения исходного кода вашего приложения на Heroku является через Git. Самым простым способом для этого является использование локального хранилища GIT. Использование Heroku CLI, мы можем связать это на специальный Heroku
Удаленный репозиторий, который заставит процесс сборки и развертывания в облаке.
Чтобы связать все, нам сначала нужно создать местное хранилище для нашего проекта, что может сделать непосредственно из IMDE Intellij с командованием VCS | Включить интеграцию управления версией …
Далее мы совершаем наш проект локально. В Intellij Idey перейдите к окну инструмента «Commun» на левой стороне и совершите все неверные файлы. (Не беспокойтесь о том, чтобы вручную без исключения /build
или /Идея
Папки — Мастер проекта KTOR уже автоматически сгенерировал .gitignore
Файл для нас, который заботится о них.)
Создание приложения и развертывания Heroku! 🚀
Почти готово! Единственное, что осталось, это создать Heroku App в котором наше новое приложение будет жить. Мы используем Heroku CLI из встроенного терминала в Imexe Intellij (или терминал нашего выбора), чтобы настроить приложение, выполнив следующую команду в корневой папке нашего проекта:
heroku create myprojectname
Через несколько секунд команда терминала должна выйти и подтвердить успешное создание нашего проекта, включая предварительный просмотр URL, в который наш проект будет видимым всего за несколько минут.
Creating ⬢ myprojectname... done https://myprojectname.herokuapp.com/ | https://git.heroku.com/myprojectname.git
На заднем плане эта команда сделала две вещи, которые мы должны заботиться о:
- Это создало новое приложение Heroku, которое мы можем проверить в нашем Веб приборная панель
- Это добавило новое Git Remote называется
Heroku
к нашему местный репозиторий Git.
Теперь мы можем забить наше развертывание: мы нажимаем Commit, что мы сделали в предыдущем разделе к новому добавленному Heroku
Git Remote. В Intellij Idea мы можем сделать это через VCS | Гит |. Толкать….
После подтверждения толчка мы можем сидеть и посмотреть нашу приложение подняться к облаку!
Этот толчок собирается занять больше времени, чем вы можете быть использованы, потому что Heroku фактически создает наше приложение удаленно в ток. Если вы заинтересованы в следующем с прогрессом, вы можете открыть окно инструмента «Git» в нижней части идеи Intellij, чтобы увидеть, что происходит на заднем плане.
Если все прошло в соответствии с планом, вы увидите подтверждающее сообщение в журналах:
remote: BUILD SUCCESSFUL in 1m 34s remote: 6 actionable tasks: 6 executed remote: -----> Discovering process types remote: Procfile declares types -> web remote: remote: -----> Compressing... remote: Done: 64.3M remote: -----> Launching... remote: Released v3 remote: https://myprojectname.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy... done.
Мы можем увидеть URL для нашего проекта в этом журнале. При навигации по этой ссылке мы видим наше приложение во всей своей славе, бегущем в облаке. Возьмите своих друзей, откройте ссылку на свой телефон и сообщите своим родственникам, которые живут по всей стране, чтобы нажать на ссылку — вы просто успешно развернули ваше заявление Kotlin в World Wide Web!
Что дальше?
Теперь, когда мы сделаем с созданием нашего приложения KTOR для развертывания на Heroku, у нас есть простой рабочий процесс для публикации новых изменений в Интернете:
- Сделать изменение
- Совершать изменения
- Нажмите изменения в
Героку Мастер
… а через минуту или два наши изменения будут опубликованы.
Если мы планируем сотрудничать с другими, мы могли бы поделиться нашим проектом на Github. В этом случае мы можем просто создать пустой репозиторий на GitHub, Добавьте его как удаленный И подтолкните наши изменения в него, как мы обычно делаем.
Если мы чувствуем себя особенно фамилию, мы можем использовать Интеграция GitHub Heroku Чтобы сделать развертывание наших приложений Kotlin, происходит автоматически, когда мы подталкиваем наши коммиты в GitHub. С этим у нас на самом деле есть удобный способ сделать Непрерывная доставка (CD) Отказ
И, конечно же, вокруг платформы Heroku есть гораздо больше, чтобы исследовать платформу Heroku и нашего сервера Kotlin. Героку «Add-ons» Страница позволяет нам добавить тонну разных сервисов в ваше приложение, которое мы можем использовать из нашего кода. Хотя многие из них платят дополнения, многие популярные услуги также предлагают бесплатный «разработчик» уровень, поэтому вы можете поэкспериментировать к контенту вашего сердца. Если вы хотите исследовать более мелкозернистый контроль о среде выполнения JVM, доступной на платформе, вы можете исследовать корректировки, связанные с JDK- и JVM, такие как предоставление A System.Properties
Файл Чтобы указать отличную версию Java для запуска вашего приложения.
Спасибо за чтение!
Спасибо за прилипание до конца! Я надеюсь, что вы нашли этот учебник полезным. Если у вас есть какие-либо вопросы или идеи о том, что охватить дальше, пожалуйста, дайте мне знать!
Оригинал: «https://dev.to/kotlin/publishing-server-side-kotlin-applications-ktor-on-heroku-2ce4»