Como obter o nome/URL da aplicação Heroku dentro da aplicação

Estou a trabalhar num agente de registo para o http://www.dif.io para permitir o rastreamento de aplicativos implantados em Heroku. Faltam-me algumas informações para a aplicação. O agente de registro é um script (geralmente escrito na linguagem nativa do aplicativo) que é projetado para ser executado após a implantação (corrida heroku, por exemplo, ou automaticaly através de algum gancho de lançamento post, se houver).

como é que consigo o nome da aplicação, o URL e algum identificador UUID de dentro da aplicação, de preferência de algumas variáveis ENV? Preciso que seja portátil entre línguas.

explorei uma aplicação de exemplo em Python e falta toda a informação acima. Existem apenas mais algumas variáveis ENV relacionadas com Python. O nome host do dyno, no entanto, parece um UUID.

dava-me jeito algo assim, mas sem os requisitos do utilizador/Senha.: https://addons.heroku.com/provider/resources/technical/reference/app-info

Por favor, diga-me a verdade. documento.

 34
Author: Alexander Todorov, 2012-09-24

6 answers

O comando app:info já não parece ser um comando heroku mas apenas info fará a mesma coisa assim:

heroku info -s | grep web_url | cut -d= -f2

Ou para definir a variável

heroku config:set HEROKU_URL=$(heroku info -s | grep web_url | cut -d= -f2)
 36
Author: ehc, 2014-11-02 18:49:49
Os metadados do Dyno foram introduzidos em dezembro de 2015. Atualmente é uma característica labs que deve ser ativado primeiro.

Os meta-dados do Dyno permitem ao dyno um acesso fácil à informação sobre a aplicação e o ambiente. Exemplos de metadados disponíveis do dyno incluem detalhes sobre a versão, Tamanho do dyno, nome da aplicação, bem como o identificador único para o dyne em execução em particular.

Https://devcenter.heroku.com/articles/dyno-metadata

 22
Author: James Beith, 2015-12-24 17:10:13

O próprio Dynos não tem qualquer informação sobre o nome da aplicação ou URL que estão a correr, tanto quanto sei. A documentação sobre o Dynos lista quais as variáveis de ambiente locais que estão definidas, mas só tem o PORT e o DYNO.

Uma solução para o que usamos em hubot é exigir que o utilizador adicione uma configuração como o HEROKU_URL com o nome da máquina de aplicações.

Descobri que podes escrever a maior parte disto, usando heroku app:info com a bandeira -s para ser amiga da concha., com um pouco de graxa e corte:

$ heroku apps:info -s  | grep web_url | cut -d= -f2
http://hubotio-campfire.herokuapp.com/

E para definir HEROKU_URL a partir disso:

$ heroku config:set HEROKU_URL=$(heroku apps:info -s  | grep web_url | cut -d= -f2)
 8
Author: technicalpickles, 2014-09-14 20:18:46
Há uma add-on dos laboratórios que saiu em Agosto de 2016, que coloca tudo isto no seu ambiente.
~ $ 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

Https://devcenter.heroku.com/articles/dyno-metadata

 7
Author: John Lehmann, 2016-11-02 01:33:46

App name store in your url something like appname.herokuapp.com.

Você pode obtê-lo de muitas maneiras, por exemplo ENV['URL'].split(".").first em python para obter o primeiro url do formulário de valor quando dividido por "."que representam o seu appname

 3
Author: Pattapong J, 2012-11-17 09:42:51
Aqui está o que funcionou para mim apenas para o nome da aplicação:
heroku info -s | grep git-url | sed 's#.\+\.com/\(.\+\)\.git$#\1#g'

O meu caso de uso era encontrar o nome da aplicação para ser usado num script shell que necessitasse do nome da aplicação especificamente (não o nome do domínio). MMMV

Usei o git-url em vez de web-url porque o nome de domínio pode ser substituído por algo personalizado, mas o nome da aplicação permanecerá sempre mapeado para o url git. Se procurar o nome de domínio, verifique uma das outras respostas.

 1
Author: TheLonelyGhost, 2016-07-21 16:51:25