Como obter o nome/URL da aplicação Heroku dentro da aplicação
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.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)
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.
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)
~ $ 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
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
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.