2010-10-19 13 views

Respuesta

2

La forma en que normalmente add domains in Heroku está utilizando la API de Heroku a través del Heroku gem. Hay un comando llamado heroku domains:add puede invocar

$ heroku domains:add example.com 

Como he dicho antes, el cliente llama a la API de Heroku. Puede extraer la información de la API de dominio de Heroku de la biblioteca y crear una secuencia de comandos personalizada que llame a la API de Heroku para agregar y eliminar un dominio de su aplicación.

Aquí está la client source code.

Nota. Debido a que eres una "ingeniería inversa" y una API que parece no estar documentada, deberías pedirle a Heroku permiso para hacerlo, solo para asegurarte de que no estás creando algo en contra de sus TOS.

+0

Gracias Simone. Entonces, ¿no hay una forma documentada de hacerlo legítimamente? –

+0

Honestamente, no creo que esta manera sea "ilegal" porque no está compilando nada. Por cierto, debes contactar a Heroku para asegurarte de que se puede hacer. –

+0

No hay de qué preocuparse, Heroku admite el uso de la API, por ejemplo, mencionan usarlo para [cambiar el número de dinnos en sus documentos] (http://docs.heroku.com/faq-product-features#how-does -dyno-amp-worker-scaling-work). Sin embargo, la API puede estar sujeta a cambios en el futuro. – wuputah

0

La gema es de heroku y es el enfoque recomendado. Me pongo en contacto con Heroku con la misma pregunta y esto estaba allí de respuesta:

tiene que decirle a Heroku sobre el dominio, y donde encaminar él también. El CNAME le dice a DNS cómo obtener la solicitud a Heroku. Ahora debe decirle a Heroku a qué aplicación se lo debe enviar. Para ello, agrega el dominio a tu aplicación. En su caso, deberá ejecutar "dominios heroku: agregar my.domain.com" a su aplicación. También puede hacer esto programáticamente desde el interior de su aplicación a través de nuestra API. Consulte la joya de Heroku (http://github.com/heroku/heroku) para ver un ejemplo de cómo conectarse y usar la API.

16

Me he puesto en contacto con Heroku por la misma cosa, y me han señalado al their api, y me han dicho que está bien usarlo de esa manera.

Me temo que no lo es. Our API está "documentado" solo por el código del cliente.

Usted puede encontrar nuestro grupo Google útil para obtener asesoramiento de miembros de la comunidad, así: http://groups.google.com/group/heroku/

Oren

Aquí es la simple de cómo hacerlo:

require 'heroku' 

heroku = Heroku::Client.new('heroku_username', 'heroku_password') 
heroku.add_domain('heroku_app_name', 'example.com') 
heroku.remove_domain('heroku_app_name','example.com') 

Ver the api para obtener más .

Por supuesto me gustaría recomendar en contra de poner una contraseña en texto plano en el código. Algo bueno que puede hacer es usar las variables de entorno heroku para sacar sus contraseñas del código.

heroku = Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASSWORD']) 

y entonces se puede establecer las variables de entorno en su aplicación con

$> heroku config:add HEROKU_USER='heroku_username' 
$> heroku config:add HEROKU_PASSWORD='heroku_password' 

desde la línea de comandos.

7

La gema heroku ha quedado obsoleta. Deberías usar la gema heroku.rb en su lugar. Los comandos han cambiado ligeramente, pero es esencialmente lo mismo.

require 'heroku-api' 

heroku = Heroku::API.new(:api_key => API_KEY)       # use API Key 
heroku = Heroku::API.new(:username => USERNAME, :password => PASSWORD) # use username and password 
heroku = Heroku::API.new(:headers => {'User-Agent' => 'custom'})  # use custom header 


heroku.delete_domain('app', 'example.com') # remove the 'example.com' domain from the 'app' app 
heroku.get_domains('app')     # list configured domains for the 'app' app 
heroku.post_domain('app', 'example.com') # add 'example.com' domain to the 'app' app 
Cuestiones relacionadas