创建Heroku附加组件

时间:2014-06-30 08:57:36

标签: ruby-on-rails heroku add-on

我想将我的云服务集成到Heroku中作为附加组件。我阅读了有关如何执行此操作的可用教程,但目前仍不清楚。 https://devcenter.heroku.com/articles/building-a-heroku-add-on#provisioning

我无法理解我们使用 kensa 从模板(例如Sinatra)创建的应用程序的角色。 它是Heroku和云服务之间的中介吗?

提前感谢。

2 个答案:

答案 0 :(得分:1)

实际上,Heroku需要两件事:

  1. addon-manifest.json文件,其中描述了Heroku所需的所有信息。这个json文件包含2个重要的URL:
    • ' BASE_URL'
    • ' sso_url'
  2. 应用程序将服务于特定于Heroku的API,并在配置/取消配置/计划更改请求时响应相应的JSON。这些请求指向' base_url'。
  3. 因此,如果您拥有自己的Cloud服务代码,并且可以添加新的API端点,那么您就不需要任何基于kensa-template的应用程序:直接在服务中添加必要的API控制器。

    但是如果你不能升级云服务,那么你就是对了,kensa-template随时可以用于heroku中间版。

    对于sinatra模板,您只需要在#34;#provision"中为您的云服务提供必要的API调用。 app.rb文件的方法,在某处部署应用程序并执行kensa push'对于你的addon-manifest.json(别忘了将base_url更新到你的)

    祝你好运!

答案 1 :(得分:1)

基于您的Cloud服务的heroku附加组件的最小API路径:

  • 对'/ heroku / resources'的POST请求 - 用于配置
  • 删除对'/ heroku / resources'的请求 - 用于取消配置

如果您真的想将它卖给heroku用户,那么您应该做更多的事情:

  • 添加对heroku single sign-on的支持 这是另一个API路由:POST到'/ heroku / sso',但您可以在addon-manifest.json文件中更改它。
  • PUT'/ heroku / resources /:id'用于计划更改请求。请注意,':id'是您在配置期间在响应中提供heroku的ID。

如果您实施SSO,则用户可以在heroku实例的资源页面上单击您的加载项,并直接重定向到您的服务,绕过任何登录表单。 您可以在SSO之后在页面中显示有关用户资源的简短信息。