当未使用Google Cloud外部静态IP时获得通知, 因此你可以释放它们以节省资金。
我正在查看Google Cloud Platform(GCP)帐单, 并注意到以下几点:
这不是Google的错, 而是我。我保留了一个静态IP, 但在删除VM后忘记释放它。它发生了, 我想不仅仅是我。
我环顾了GCP控制台, 找不到未使用静态IP的警报选项。也许是产品功能要求。
但是, 我不会重复该错误。
感谢Google Cloud SDK提供的gcloud CLI, 你可以在脚本中使用它执行几乎所有操作。我想写一个每天运行的脚本, 并在不使用任何静态IP时发出通知。有多种方法可以得到通知, 第一种便捷的方法是电子邮件。但是, 我没有运行邮件服务器, 因此不得不寻找其他选择。
经过几分钟的搜索, 我发现了Pushbullet。它是一个通知系统, 可用于将警报推送到Chrome, Firefox, Safari, Opera, Android, iOS和Windows。几乎所有的东西。我还需要什么?
你可以猜测, 当你没有在服务器上运行邮件服务器或想在任何地方运行gcloud命令的情况下, 立即获得Pushbullet通知即可。
如果你决定转到Pushbullet, 则创建一个免费帐户, 在要接收通知的位置进行设置, 然后转到”设置”以生成访问令牌。
我假设你在服务器上已准备好访问令牌并可以使用gcloud命令。
这是小脚本。创建具有以下内容的文件, 例如gcp-unused-ip-monitor.sh
#!/bin/bash
if gcloud compute addresses list | grep EXTERNAL | grep RESERVED ; then
curl -u $Access_TOKEN: https://api.pushbullet.com/v2/pushes -d type=note -d title="Google Cloud IP NOT_INUSE" -d body="Some external IP is not in use"
else :
fi
不要忘记用实际值更新$ Access_TOKEN。
保存文件并通过授予执行权限使其可执行。
chmod 755 gcp-unused-ip-monitor.sh
手动运行脚本以验证警报。如果你有未使用的IP, 则会收到警报。
上面的通知来自我配置了Pushbullet进行提醒的Chrome浏览器。但是如上所述, 你可以将警报推送到移动设备或其他浏览器。选择你喜欢的。
现在, 我们有了一个工作脚本, 接下来, 我们需要每天自动运行此脚本。
要安排脚本每天运行, 请使用基于UNIX的操作系统上可用的Crontab。
使用crontab -e编辑crontab并添加以下内容
0 0 * * * $PATH/gcp-unused-ip-monitor.sh > /dev/null
将$ PATH更新到脚本所在的路径。在cron条目上方, 将在每个午夜运行脚本。你可以根据自己的喜好调整运行时间。
有多容易?
收到警报后, 你可以转到GCP控制台并查看”未使用的IP”并释放它们。
我希望这个小脚本可以为你节省一些时间。