2015-05-31 2 views
0

Я пытаюсь заставить мой сценарий автоматического резервного копирования работать. Я использую драгоценный камень герою. Скрипт запускается из аддона Планировщика Heroku.Аутентификация драгоценного камня Heroku из задачи rake

require "heroku/command/pg" 
require "heroku/command/pg_backups" 

.... 
def initialize 
    @client  = Heroku::Command::Pg.new([], app: ENV['APP_NAME']) 
end 

... 
attachment = @client.send(:generate_resolver) 
... 

Как только я называю attachment = @client.send(:generate_resolver), сценарии останавливает выполнение и попросить

Enter your Heroku credentials. 
Email: 

Есть ли способ избежать этого, учитывая, что задача инициируется изнутри Heroku в любом случае, и, следовательно, должны уже прошли проверку подлинности.

Любая помощь очень ценится

ответ

1

Для неинтерактивного входа в систему, вам нужно использовать ключ API, который Heroku will read из переменной в HEROKU_API_KEY среды. Вы можете использовать fetch the key для своей учетной записи из зарегистрированного CLI, используя heroku auth:token.

Невозможно избежать аутентификации только потому, что вы уже работаете внутри Heroku. Это будет иметь серьезные последствия для безопасности приложений.

Также зарегистрируйтесь pgbackups-archive. Похоже, он делает то, что вам нужно, или, по крайней мере, может иметь для вас некоторые полезные приемы.

+0

Я вижу, знаете ли, что токен меняется с течением времени? – Tarlen

+0

Токен не изменяется сам по себе, но я считаю, что он изменится, если вы измените свой пароль. Вы также можете восстановить его в любое время со своей [страницы учетной записи] (https://dashboard.heroku.com/account). –

Смежные вопросы