我正在为http://www.dif.io注册代理,以便跟踪部署在Heroku上的应用。我错过了部署的应用程序的一些信息。注册代理是一个脚本(通常用应用程序本机语言编写),它被设计为在部署之后执行(例如heroku运行或者通过一些post deploy hook(如果有的话)自动执行)。
如何从应用程序内部获取应用程序名称,URL和一些UUID标识符,最好是从某些ENV变量中获取?我需要它可以在语言之间移植。
我探索了一个示例Python应用程序,并且缺少以上所有信息。只有几个与Python相关的ENV变量。然而,dyno主机名看起来像UUID。
我可以使用类似的东西,但没有用户/密码要求: https://addons.heroku.com/provider/resources/technical/reference/app-info
请指出正确的文档。
答案 0 :(得分:39)
命令app:info
似乎不再是heroku
命令,只是info
会做同样的事情:
heroku info -s | grep web_url | cut -d= -f2
或设置变量
heroku config:set HEROKU_URL=$(heroku info -s | grep web_url | cut -d= -f2)
答案 1 :(得分:24)
Dyno元数据于2015年12月推出。它目前是实验室功能,必须首先启用。
Dyno元数据使dyno可以轻松访问有关应用和环境的信息。可用的dyno元数据示例包括有关发布,dyno大小,应用程序名称以及特定运行dyne的唯一标识符的详细信息。
答案 2 :(得分:10)
2016年8月出现了一个实验室附加组件,它将所有这些添加到您的环境中:
~ $ env
HEROKU_APP_ID: 9daa2797-e49b-4624-932f-ec3f9688e3da
HEROKU_APP_NAME: example-app
HEROKU_DYNO_ID: 1vac4117-c29f-4312-521e-ba4d8638c1ac
HEROKU_RELEASE_CREATED_AT: 2015-04-02T18:00:42Z
HEROKU_RELEASE_VERSION: v42
HEROKU_SLUG_COMMIT: 2c3a0b24069af49b3de35b8e8c26765c1dba9ff0
HEROKU_SLUG_DESCRIPTION: Deploy 2c3a0b2
答案 3 :(得分:8)
据我所知,Dynos自己没有关于他们运行的应用程序名称或URL的任何信息。 documentation on Dynos列出了设置的本地环境变量,但它只有PORT和DYNO。
我们在hubot中使用的一种解决方法是要求用户使用应用主机名添加HEROKU_URL等配置。
我发现你可以编写大部分内容,使用heroku app:info
-s
标志,以便进行外壳友好,并进行一些点击和切割:
$ heroku apps:info -s | grep web_url | cut -d= -f2
http://hubotio-campfire.herokuapp.com/
并设置HEROKU_URL:
$ heroku config:set HEROKU_URL=$(heroku apps:info -s | grep web_url | cut -d= -f2)
答案 4 :(得分:3)
您的网址中的应用名称存储类似于appname.herokuapp.com
。
你可以通过多种方式获得它,例如python中的ENV['URL'].split(".").first
以“。”分割时获取第一个值表单url代表您的appname
答案 5 :(得分:3)
以下仅适用于应用名称的内容:
heroku info -s | grep git-url | sed 's#.\+\.com/\(.\+\)\.git$#\1#g'
我的用例是找到在shell脚本中使用的应用程序名称,该脚本需要专门的应用程序名称(而不是域名)。 YMMV
我使用git-url
代替web-url
,因为域名可以覆盖为自定义内容,但应用名称将始终保持映射到git网址。如果要查找域名,请检查其他答案之一。
答案 6 :(得分:0)
对于那些来这里的人,试图找到一种在Heroku中获取评论应用程序的应用程序URL的方法,我们还有两个可用的环境变量:
所以推断URL只是:“ http(s)://HEROKU_APP_NAME.herokuapp.com”