1

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

理想情况下,我需要使用 API 来执行此操作。有办法吗?我无法在我的生产环境中安装工具带并回退到system或反引号来调用它,因为;具有讽刺意味的是,它在 Heroku 上运行。

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

4

2 回答 2

0

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

于 2016-05-23T02:32:08.327 回答
0

没有公共 API 可以做到这一点。

然而,它可以做到...

首先,您需要数据库的唯一名称。您可以通过它的附件名称/别名来查找它,通常DATABASEHEROKU_POSTGRES_[COLOR]默认情况下,或者您可能使用heroku addons:{create,attach} --as NAME. 默认情况下使用别名,DATABASE以下是使用curland获取它的方法jq

$ 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,因此请在您决定使用它时考虑到这一点。

于 2016-05-27T23:46:19.787 回答