Как добавлять и удалять динамики Heroku через platform API

#javascript #node.js #api #heroku #dyno

#javascript #node.js #API #heroku #dyno

Вопрос:

Я хочу добавлять и удалять динамики Heroku через platform API Так же, как мы делаем

 ps:scale web=0
  

в интерфейсе командной строки Heroku toolbelt.

Я уже пробовал

 POST /apps/{app_id_or_name}/dynos/{dyno_id_or_name}/actions/stop
  

но это ничего не делает, однако ответ имеет код состояния 200.

Комментарии:

1. Запуск ps: stop на динамиках, которые являются частью масштабируемого процесса, будет автоматически перезапущен.

2. @svikramjeet Я знаю об этой команде, но мне нужно сделать это через API платформы Heroku

3. Вы не можете удалить динамики с помощью API, пожалуйста, обратитесь к документам

Ответ №1:

В соответствии с поведением dyno stop ps:stop , описанным в этом вопросе:

Запуск ps:stop на динамиках, которые являются частью масштабируемого процесса, будет автоматически перезапущен. В частных пространствах ps:stop завершит работу и заменит выделенный экземпляр, на котором запущены динамики. Чтобы окончательно остановить динамические модули, уменьшите масштаб процесса.»

Чтобы уменьшить динамические модули до 0 с помощью Platform API, вам необходимо использовать API формирования.

Формирование списка:

 GET /apps/{app_id_or_name}/formation

$ curl -n https://api.heroku.com/apps/$APP_ID_OR_NAME/formation 
  -H "Accept: application/vnd.heroku json; version=3"
  

Обновление формирования:

 PATCH /apps/{app_id_or_name}/formation/{formation_id_or_type}

$ curl -n -X PATCH https://api.heroku.com/apps/$APP_ID_OR_NAME/formation/$FORMATION_ID_OR_TYPE 
  -d '{
  "quantity": 1,
  "size": "standard-1X"
}' 
  -H "Content-Type: application/json" 
  -H "Accept: application/vnd.heroku json; version=3"
  

Отправка количества = 0 в качестве параметра приведет к масштабированию процесса dyno до нуля.