Cómo obtener el nombre/URL de la aplicación Heroku desde dentro de la aplicación
heroku dashboard login (6)
Dyno Metadata se introdujo en diciembre de 2015. Actualmente es una función de laboratorio que debe habilitarse primero.
Los metadatos de Dyno le dan al banco de datos acceso fácil a la información sobre la aplicación y el entorno. Los ejemplos de metadatos de dyno disponibles incluyen detalles sobre la versión, el tamaño del dinamómetro, el nombre de la aplicación y el identificador exclusivo de la dine de ejecución en particular.
Estoy trabajando en un agente de registro para http://www.dif.io para permitir el seguimiento de las aplicaciones implementadas en Heroku. Me faltan algunos datos para la aplicación implementada. El agente de registro es un script (generalmente escrito en el idioma nativo de la aplicación) que está diseñado para ejecutarse después de la implementación (heroku, por ejemplo, o de forma automática a través de un enganche post-implementación, si lo hubiera).
¿Cómo obtengo el nombre de la aplicación, la URL y algún identificador UUID desde dentro de la aplicación, preferiblemente desde algunas variables ENV? Necesito que sea portátil entre idiomas.
Exploré una aplicación Python de muestra y faltaba toda la información anterior. Solo hay un par de variables ENV más relacionadas con Python. Sin embargo, el nombre de host del dyno se parece a un UUID.
Podría usar algo como esto, pero sin los requisitos de usuario / contraseña: https://addons.heroku.com/provider/resources/technical/reference/app-info
Por favor, dirígeme a los documentos correctos.
Dynos en sí mismos no tienen ninguna información sobre el nombre de la aplicación o la URL que están ejecutando, por lo que yo sé. La documentación en Dynos enumera qué variables de entorno local se establecen, pero solo tiene PORT y DYNO.
Una solución para la que utilizamos en hubot es requerir que el usuario agregue una configuración como HEROKU_URL con el nombre de host de la aplicación.
Descubrí que puedes escribir la mayoría de esto, usando la heroku app:info
con la bandera -s
para usarla como caparazón, con un poco de grepping y corte:
$ heroku apps:info -s | grep web_url | cut -d= -f2
http://hubotio-campfire.herokuapp.com/
Y para configurar HEROKU_URL a partir de eso:
$ heroku config:set HEROKU_URL=$(heroku apps:info -s | grep web_url | cut -d= -f2)
Esto es lo que funcionó para mí solo para el nombre de la aplicación:
heroku info -s | grep git-url | sed ''s#./+/.com//(./+/)/.git$#/1#g''
Mi caso de uso fue encontrar el nombre de la aplicación para su uso en un script de shell que necesitaba el nombre de la aplicación específicamente (no el nombre de dominio). YMMV
Utilicé git-url
lugar de web-url
porque el nombre de dominio puede ser reemplazado por algo personalizado, pero el nombre de la aplicación siempre permanecerá mapeado en la url git. Si busca el nombre de dominio, verifique una de las otras respuestas.
Hay un complemento de laboratorio que salió en agosto de 2016 que pone todo esto en su entorno:
~ $ 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
Tienda de nombre de la aplicación en tu url, algo así como appname.herokuapp.com
.
Puedes obtenerlo de muchas maneras, por ejemplo, ENV[''URL''].split(".").first
en python para obtener el primer valor de url de forma cuando se divide por "." que representa su nombre de aplicación
La app:info
comando app:info
ya no parece ser un comando heroku
pero solo la info
hará lo mismo, así que:
heroku info -s | grep web_url | cut -d= -f2
o para establecer la variable
heroku config:set HEROKU_URL=$(heroku info -s | grep web_url | cut -d= -f2)