2016-03-31 27 views
1

使用Heroku Toolbelt旋轉Postgres和Redis證書非常簡單https://blog.heroku.com/archives/2012/7/17/rotate_database_credentials_on_heroku_postgres_如何使用API​​旋轉Heroku Postgres/Redis證書?

理想情況下,我需要使用API​​來完成此操作。有沒有辦法?我無法在我的生產環境中安裝工具欄並回退到system或反引號來調用它,因爲;具有諷刺意味的是,它在Heroku上運行。

編輯:實際上,有一種方法可以在Heroku中使用此buildpack運行Toolbelt,但我更願意通過API本地執行此操作。

+0

你或許可以要求heroku支持做到這一點 – Set

回答

0

該平臺API目前不公開此端點。目前,您的選擇僅限於CLI/buildpack或通過各個數據存儲的儀表板進行選擇。

0

沒有公共的API來做到這一點。

然而,這是可以做到...

首先,你需要你的數據庫的唯一名稱。您可以通過它的附件名稱/別名來查看,默認情況下通常爲DATABASEHEROKU_POSTGRES_[COLOR],或者您可能已經用heroku addons:{create,attach} --as NAME分配的任何自定義。使用DATABASE默認的別名,這裏是你會如何使用curljq得到它:

$ curl -H "Authorization: Bearer $API_KEY" \ 
     -H "Accept: application/vnd.heroku+json; version=3" \ 
     https://api.heroku.com/apps/$APP_NAME/addon-attachments/DATABASE \ 
    | jq .addon.name 

    "postgresql-colorful-12345" 

然後,假設名稱保存存儲在$DBNAME,你可以旋轉它的憑證,像這樣:

$ curl -X POST -u "x:$API_KEY" \ 
    https://$DOMAIN/client/v11/databases/$DBNAME/credentials_rotation 

{"status":"ok","url":"[REDACTED]","message":"Password reset."} 

$DOMAIN將爲postgres-api.heroku.com付費計劃和postgres-starter-api.heroku.com免費/業餘愛好計劃,IIRC。

這個API可以在任何時候改變,因爲它被認爲是一個私有的API,所以在你決定使用它時應該考慮這個因素。