我在实例元数据中添加了一个 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 终止它,但我想避免这种情况。
还有其他人遇到过这个问题吗?
答案1
对于您要完成的任务,我认为最好让实例完成其任务,然后使用Google GCE API随后删除该实例。这样,您就可以远程使用该脚本,并且还可以使用其他功能。
此外,您可以继续使用实例元数据中的 bash 脚本在实例完成其工作后删除该实例。但是,它们存在潜在的延迟问题,如您所概述的那样;这就是为什么最好使用 API 的原因。
我还建议查看以下文件: