Создание надстройки Heroku

Я хотел бы интегрировать свой облачный сервис в Heroku в качестве надстройки. Я прочитал доступные учебники о том, как это сделать, но все еще не ясно. https://devcenter.heroku.com/articles/building-a-heroku-add-on#provisioning

Я не мог понять роль приложения, которое мы создаем из шаблона (например, Sinatra) с помощью kensa. Является ли он промежуточным звеном между Heroku и облачным сервисом?

заранее спасибо.


person user3242743    schedule 30.06.2014    source источник


Ответы (2)


На самом деле Heroku нужны две вещи:

  1. addon-manifest.json file where described all information needed for Heroku. And this json file contains 2 important urls:
    • 'base_url'
    • 'sso_url'
  2. Приложение, которое будет обслуживать специфичный для heroku API и отвечать соответствующим JSON на запросы предоставления/отмены/планирования. Эти запросы указывают на «base_url».

Итак, если вы владеете кодом своего облачного сервиса и можете добавлять новые конечные точки API, то вам не нужно никакого приложения на основе kensa-template: добавьте необходимые контроллеры API прямо в сервисе.

Но если вы не можете обновить облачный сервис, то вы правы, kensa-template готов к использованию с промежуточным звеном heroku.

В случае шаблона sinatra вам просто нужно поместить необходимые API-вызовы к вашей облачной службе в методе «# provision» файла app.rb, развернуть приложение где-нибудь и выполнить «kensa push» для вашего addon-manifest.json (don; t забудьте обновить base_url на свой)

Удачи!

person Proffard    schedule 30.06.2014
comment
Большое спасибо за ответ. Но какие именно конечные точки API мне нужно реализовать в коде моего облачного сервиса? Только запросы на инициализацию/деинициализацию/изменение плана? - person user3242743; 30.06.2014

Минимальные маршруты API для надстройки heroku на основе вашего облачного сервиса:

  • POST-запрос к «/heroku/resources» — для подготовки
  • УДАЛИТЬ запрос к '/heroku/resources' - для удаления

Если вы действительно хотите продать его пользователям героку, вам следует сделать больше:

  • добавить поддержку единого входа в heroku, это еще один API route: POST to '/heroku/sso', но вы можете изменить его в файле addon-manifest.json.
  • PUT '/heroku/resources/:id' для запроса на изменение плана. Обратите внимание, что «:id» — это идентификатор, который вы предоставили heroku в своем ответе во время подготовки.

Если вы реализуете SSO, то пользователь может нажать на вашу надстройку на странице ресурсов экземпляра heroku и перенаправить прямо на вашу службу, минуя любые формы входа. Вы можете показать только краткую информацию о ресурсе пользователя на странице после SSO.

person Proffard    schedule 30.06.2014
comment
Изменяется ли процесс подготовки при использовании единого входа (SSO)? Благодарность - person user3242743; 01.07.2014