自定义数据
Equinix Metal™ 提供自定义数据服务,因此您可以通过服务器的元数据和Equinix Metal API 定义和使用有关您的服务器和基础设施的数据。
自定义数据可以理解为一种更具表现力的标签功能。自定义数据支持 JSON 格式的字符串、数组、映射、数字数组的映射、布尔值等等。字段和对象属性完全由用户定义,旨在为自动化提供更多选项。本页中使用的 JSON 对象只是一些简单示例。
使用自定义数据进行配置
- Console
- API
要在服务器配置时添加自定义数据,请展开“可选设置”部分。选择“自定义数据”。在字段中输入 JSON 格式的数据。

在 API 中配置服务器时,请在发送到 /projects/{id}/devices 端点的 POST 请求正文中定义自定义数据对象。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>",
"customdata": {
"data": {
"text": "testing device",
"frozen": false,
"oneOf": 3
}
}
}'
访问自定义数据
- Console
- Server Metadata
- API
服务器配置完成后,您可以从服务器的“设置”选项卡访问其自定义数据。

滚动到“自定义数据”部分。

一旦您在服务器上定义了自定义数据,您就可以通过服务器的元数据端点在服务器本地访问它。
curl https://metadata.platformequinix.com/metadata | jq '.customdata'
您可以从服务器外部通过 devices/{id}/customdata API 端点访问自定义数据。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/devices/{id}/customdata
只要您的项目中配置了服务器,就可以访问自定义数据。
添加或修改自定义数据
- Console
- API
要更新服务器的自定义数据,请打开服务器的“设置”选项卡。

滚动到“自定义数据”部分,将新的 JSON 格式数据输入到字段中,然后单击“保存”。

要更新服务器的自定义数据,请向 /devices/{id} 端点发送 PUT,并在请求正文中定义自定义数据对象。
curl -X PUT \
-H "Content-Type: application/json" \
-H "X-Auth-Token: $API_TOKEN" \
"https://api.equinix.com/metal/v1/devices/{id}" \
-d '{
"customdata": {
"data": {
"text": "Click Here"
}
}
}'
其他资源的自定义数据
除了服务器之外,其他 Equinix Metal 资源也通过 API 支持自定义数据。虽然元数据中不包含这些数据,但可以利用这些端点来实现特定于提供 "customdata" 属性的资源的远程状态存储。
用户
您可以使用 /users/{id} 端点向任何已创建的用户添加自定义数据。
curl -X PUT \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/users/{id}" \
-d '{
"customdata": {
"data": {
"text": "bot-user-1",
"auto-rotate": true
}
}
}'
然后您可以通过 /users/{id}/customdata 端点访问它。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/users/{id}/customdata
项目
你可以通过将自定义数据包含在 POST 的正文中,向 /projects 端点发送请求来创建具有自定义数据的项目。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/" \
-d '{
"customdata": {
"data": {
"text": "dev-env-05",
"do-not-disturb": false
}
},
"name": "string",
"organization_id": "<uuid>",
"payment_method_id": "<uuid>"
}'
您可以使用向 /projects/{id} 端点发送的 PUT 请求正文中的 "customdata" 字段来更新项目的自定义数据。
curl -X PUT \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}" \
-d '{
"customdata": {
"data": {
"text": "dev-env-05",
"do-not-disturb": true
}
}
}'
最后,您可以从 /projects/{id}/customdata 端点检索项目的自定义数据。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/projects/{id}/customdata
组织机构
您可以使用向 /organizations/{id} 端点发送的 PUT 请求正文中的 "customdata" 字段,向任何组织添加自定义数据。
curl -X PUT \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/organizations/{id}" \
-d '{
"customdata": {
"data": {
"text": "cluster-03",
"do-not-disturb": true
},
"owners": "internal"
}
}'
您可以从 /organizations/{id}/customdata 端点检索组织的自定义数据。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/organizations/{id}/customdata
IP地址
当 IP 地址分配给服务器时,可以通过在向 /devices/{id}/ips 端点发送的 POST 请求正文中包含“customdata”字段,向该 IP 地址添加自定义数据。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/devices/{id}/ips" \
-d '{
"address": "198.51.100.3/31",
"customdata": {
"data": {
"text": "connect-me",
"can_float": false
},
"group": "for_vms"
}
}'
您可以使用向 /ips/{id} 端点发送的 PATCH 请求正文中的 "customdata" 字段来更新 IP 地址的自定义数据。
curl -X PATCH \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/ips/{id}" \
-d '{
"address": "198.51.100.3/31",
"customdata": {
"data": {
"text": "connect-me",
"can_float": true
},
"group": "static"
}
}'
您可以从 /ips/{id}/customdata 端点检索 IP 地址的自定义数据。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/ips/{id}/customdata