#ruby-on-rails #heroku #add-on
#ruby-on-rails #heroku #дополнение
Вопрос:
Я хотел бы интегрировать свой облачный сервис в Heroku в качестве дополнения. Я прочитал доступные руководства о том, как это сделать, но это все еще не ясно. https://devcenter.heroku.com/articles/building-a-heroku-add-on#provisioning
Я не мог понять роль приложения, которое мы создаем из шаблона (например, Sinatra), используя kensa. Является ли это промежуточным звеном между Heroku и облачным сервисом?
заранее спасибо.
Ответ №1:
На самом деле, Heroku нужно 2 вещи:
- дополнение-файл manifest.json, в котором описана вся информация, необходимая для Heroku. И этот файл json содержит 2 важных URL-адреса:
- ‘base_url’
- ‘sso_url’
- Приложение, которое будет использовать API, специфичный для heroku, и отвечает соответствующим JSON на запросы о предоставлении / отмене предоставления / изменении плана. Эти запросы указывают на ‘base_url’.
Итак, если вы владеете кодом своего облачного сервиса и можете добавлять новые конечные точки API, то вам не нужно никаких приложений на основе kensa-template: добавьте необходимые контроллеры API непосредственно в сервис.
Но если вы не можете обновить облачный сервис, тогда вы правы, kensa-template — это готовый к использованию с heroku intermediate.
В случае шаблона sinatra вам просто нужно поместить необходимые вызовы API в свой облачный сервис в метод «# provision» в файле app.rb, развернуть приложение где-нибудь и выполнить «kensa push» для вашего аддона-manifest.json (не забудьте обновить base_url до вашего)
Удачи!
Комментарии:
1. Большое спасибо за ответ. Но каковы именно конечные точки API, которые мне нужно реализовать в моем коде «облачного сервиса»? Только запросы на инициализацию / отмену / обмен планами?
Ответ №2:
Минимальные маршруты API для дополнения heroku на основе вашего облачного сервиса:
- ОТПРАВИТЬ запрос в ‘/heroku/resources’ — для подготовки
- УДАЛИТЬ запрос в ‘/heroku/resources’ — для отмены проверки
Если вы действительно хотите продавать его пользователям heroku, вам следует делать больше вещей:
- добавить поддержку единого входа в heroku это еще один маршрут API: POST в ‘/heroku/ sso’, но вы можете изменить его в файле addon-manifest.json.
- ВВЕДИТЕ ‘/heroku/resources/:id’ для запроса на изменение плана. Обратите внимание, что ‘: id’ — это идентификатор, который вы указали heroku в своем ответе во время подготовки.
Если вы реализуете единый вход, пользователь может щелкнуть ваше дополнение на странице ресурсов экземпляра heroku и перенаправить его непосредственно на ваш сервис, минуя любые формы входа. Вы можете показать только краткую информацию о ресурсе пользователя на странице после единого входа.
Комментарии:
1. Изменяется ли процесс подготовки, когда мы используем единый вход (SSO)? Спасибо