Создание дополнения Heroku

#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 вещи:

  1. дополнение-файл manifest.json, в котором описана вся информация, необходимая для Heroku. И этот файл json содержит 2 важных URL-адреса:
    • ‘base_url’
    • ‘sso_url’
  2. Приложение, которое будет использовать 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)? Спасибо