如何以编程方式从 Droplet 中获取当前 Droplet 的 Digital Ocean ID?

How do I programmatically get the Digital Ocean ID of the current Droplet from within the Droplet?

我正在我的 AWS 和 Digital Ocean 服务器上设置监控和日志聚合,我希望能够在来自 Digital Ocean 的日志消息的元数据中包含一个 Droplet ID。

在 AWS 上,有一种方法可以从实例内部获取实例 ID:How to get the instance id from within an ec2 instance?

我正在 Digital Ocean 中寻找类似的东西,这样我就可以在我的日志中有一个唯一的 ID 来识别一个 droplet。

我不是在寻找主机名之类的东西,因为主机名可以设置为 /etc/hostname 中的任何内容。我可能在一个负载均衡器后面有多个 Web 服务器,所有服务器都响应相同的主机名。 IP 地址可以更改,所以我不希望这样。

我想要一个唯一的 ID 来帮助我在 API 或 Web 控制台中找到我的 Droplet,我希望能够从 运行 上的 shell 脚本中获取它水滴。

您可以 运行 curl http://169.254.169.254/metadata/v1/id 在 Droplet 中,这将为您提供 Droplet 的 ID。 如果你想在 shell 脚本中使用它,你可以这样做:

#!/bin/sh
droplet_id=$(curl http://169.254.169.254/metadata/v1/id)
echo "droplet id: $droplet_id"

# use $droplet_id in your script whenever you need to identify the droplet

...