2010-10-19 13 views

risposta

2

Il modo in cui di solito add domains in Heroku utilizza l'API Heroku tramite Heroku gem. C'è un comando chiamato heroku domains:add è possibile richiamare

$ heroku domains:add example.com 

Come ho detto prima, il cliente chiama l'API Heroku. È possibile estrarre le informazioni dell'API del dominio Heroku dalla libreria e creare uno script personalizzato che chiami l'API Heroku per aggiungere e rimuovere un dominio dall'app.

Ecco lo client source code.

Nota. Poiché tu sei "reverse engineering" e API che sembra non essere documentata, dovresti chiedere a Heroku il permesso di farlo, solo per essere sicuro che non stai creando qualcosa contro il loro TOS.

+0

Grazie Simone. Quindi non esiste un modo documentato per farlo in modo legittimo allora? –

+0

Onestamente, non credo che questo modo sia "illegale" perché non stai decompilando nulla. A proposito, dovresti contattare Heroku per assicurarti che possa essere fatto. –

+0

Non c'è bisogno di preoccuparsi, Heroku supporta l'utilizzo dell'API, ad esempio, menzionano l'utilizzo per [modificare il numero di dynos nei propri documenti] (http://docs.heroku.com/faq-product-features#how-does -dyno-amp-lavoratore-scaling-lavoro). Tuttavia, l'API potrebbe essere soggetta a modifiche in futuro. – wuputah

0

La gemma è di heroku ed è l'approccio consigliato. Ho appena contattato Heroku con la stessa domanda e questa è stata la risposta:

Hai bisogno di dire a Heroku del dominio e di dove dirigerlo. Il CNAME dice al DNS come ottenere la richiesta a Heroku. Ora devi dire a Heroku quale app per inviarla. Puoi farlo aggiungendo il dominio alla tua app. Nel tuo caso dovresti eseguire "domini heroku: aggiungi my.domain.com" alla tua app. Puoi anche farlo a livello di codice dall'interno dell'applicazione sulla nostra API. Guarda la gemma Heroku (http://github.com/heroku/heroku) per un esempio di come connettersi e utilizzare l'API.

16

Ho contattato Heroku per la stessa cosa, e mi hanno appena indicato a their api e ho detto che va bene usarlo in questo modo.

Ho paura che non ci sia. Our API è "documentato" solo dal codice del client.

Si possono trovare il nostro gruppo google utile per ottenere consulenza da membri della comunità così: http://groups.google.com/group/heroku/

Oren

Ecco il semplice how-to:

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') 

Vedi the api per più .

Ovviamente ti consiglio di non inserire una password in chiaro nel tuo codice. Una cosa carina che puoi fare è usare le variabili d'ambiente heroku per far uscire le tue password dal codice.

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

e quindi è possibile impostare le variabili di ambiente sul vostro app con

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

dalla riga di comando.

7

La gemma di heroku è stata ritirata. Dovresti invece usare la gemma heroku.rb. I comandi sono leggermente cambiati, ma è essenzialmente lo stesso.

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 
Problemi correlati