如何使用API​​旋转Heroku Postgres / Redis凭据?

时间:2016-03-31 14:12:29

标签: heroku heroku-postgres heroku-api

使用Heroku Toolbelt旋转Postgres和Redis凭据非常简单https://blog.heroku.com/archives/2012/7/17/rotate_database_credentials_on_heroku_postgres_

理想情况下,我需要使用API​​执行此操作。有办法吗?我无法在我的生产环境中安装工具带并回退到 <script> navigator.serviceWorker.register("../service.js", { scope: "myScope" }); </script> 或反引号来调用它,因为;具有讽刺意味的是,它正在Heroku上运行。

编辑:实际上,有一种方法可以使用此buildpack在Heroku中运行Toolbelt,但我更喜欢通过API本地执行它。

2 个答案:

答案 0 :(得分:0)

该平台API目前不会为此公开端点。目前,您的选择仅限于CLI / buildpack或通过这些相应数据存储的仪表板。

答案 1 :(得分: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."}
对于付费方案,

$DOMAINpostgres-api.heroku.com,对于免费/爱好计划,postgres-starter-api.heroku.com为IIRC。

此API可能会随时更改,因为它被视为私有API,因此决定使用它。