Я добавил сценарий 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, но я бы хотел этого избежать.
] Кто-нибудь еще сталкивался с этой проблемой?
Для того, что вы пытаетесь выполнить, я думаю, было бы лучше, чтобы экземпляр выполнил свою задачу, а затем использовал Google GCE API для последующего удаления экземпляра. Таким образом, вы можете использовать скрипт удаленно, а также иметь другие функции.
Кроме того, вы можете продолжать использовать скрипт bash в метаданных экземпляра для удаления экземпляра после того, как он завершит свою работу. Тем не менее, это потенциальные проблемы с задержкой, подобные той, которую вы описали; Вот почему было бы лучше использовать вместо этого API.
Я бы также посоветовал ознакомиться со следующими документами: