Я добавил сценарий bash в метаданные экземпляра, который выполняет некоторые тесты, а затем выполняет следующую команду в конце сценария.
shutdown -h now
Экземпляр и изображение после этого удаляются "сценарием создания".
Экземпляр становится недоступным через SSH, но не устанавливает для него TERMINATED
пока вроде через 10 минут. В это время он по-прежнему отображается как RUNNING
.
Все смотрит на это должно в последовательной консоли.
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopping Session 1 of user my-user.
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopping User Manager for UID 1001...
Stopping Authenticate and Authorize Users to Run Privileged Tasks...
[[0;32m OK [0m] Closed Load/Save RF Kill Switch Status /dev/rfkill Watch.
[[0;32m OK [0m] Stopped target Mail Transport Agent.
[[0;32m OK [0m] Stopped target Timers.
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopping Authenticate and Authorize Users to Run Privileged Tasks...
[[0;32m OK [0m] Stopped Daily Cleanup of Temporary Directories.
[[0;32m OK [0m] Stopped target Graphical Interface.
Aug 5 16:54:20 database-integrity-test systemd[1]: Closed Load/Save RF Kill Switch Status /dev/rfkill Watch.
Stopping Accounts Service...
Stopping ACPI event daemon...
[[0;32m OK [0m] Stopped target Cloud-init target.
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopped target Mail Transport Agent.
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopped target Timers.
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopped Daily Cleanup of Temporary Directories.
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopped target Graphical Interface.
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopping Accounts Service...
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopping ACPI event daemon...
Aug 5 16:54:20 database-integrity-test systemd[1]: Stopped target Cloud-init target.
and so on . . . .
Мы хотим свести к минимуму обслуживание этих «вытесняемых экземпляров теста целостности», чтобы сэкономить средства, тест занимает пару минут для небольших баз данных. Ожидание завершения работы в 10 или 20 раз дольше, чем фактический тест, складывается со временем.
Решением было бы связаться с экземпляром и завершить его через Google Cloud API, но я бы хотел этого избежать.
Кто-нибудь еще сталкивался с этой проблемой?
Для того, что вы пытаетесь выполнить, я думаю, было бы лучше, если бы экземпляр выполнил свою задачу, а затем использовал API Google GCE чтобы потом удалить экземпляр. Таким образом, вы можете использовать сценарий удаленно, а также иметь другие функции.
Кроме того, вы можете продолжать использовать сценарий bash в метаданных экземпляра, чтобы удалить экземпляр после того, как он завершил свою работу. Тем не менее, это потенциальные проблемы с задержкой, подобные описанной вами; Вот почему вместо этого лучше всего использовать API.
Также я бы посоветовал ознакомиться со следующими документами: