カスタムデータ
Equinix Metal™はカスタムデータサービスを提供しているため、お客様はサーバーのメタデータやEquinix Metal APIを通じてサーバーやインフラストラクチャに関するデータを定義し、利用することができます。
カスタム・データを、より表現力豊かなタグ機能として考えることもできる。カスタム・データでは、JSON形式の文字列、配列、マップ、数値の配列のマップ、ブーリアンなどが使用できる。フィールドとオブジェクトのプロパティは完全にユーザー定義で、自動化のための追加オプションを提供することを目的としています。このページで使用しているJSONオブジェクトは、単なる例です。
カスタムデータによるプロビジョニング
- Console
- API
プロビジョニング時にカスタムデータをサーバーに追加するには、_オプション設定_セクションを展開します。Custom Data_を選択します。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
サーバーのプロビジョニングが完了したら、サーバーの_Settings_タブからカスタムデータにアクセスできます。

カスタムデータ」セクションまでスクロールしてください。

カスタムデータがサーバー上で定義されると、サーバーのmetadata endpointからサーバー上のローカルデータにアクセスできます。
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
サーバーのカスタムデータを更新するには、サーバーの_Settings_タブを開きます。

Custom Data_セクションまでスクロールし、新しいJSON形式のデータをフィールドに入力し、Save をクリックします。

サーバーのカスタム データを更新するには、/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アドレス
/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"
}
}'
IP アドレスのカスタム データは、/ips/{id} エンドポイントへの PATCH リクエストのボディ内の "customdata" フィールドを使用して更新できます。
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"
}
}'
IP アドレスのカスタム データは、/ips/{id}/customdata エンドポイントから取得できます。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' https://api.equinix.com/metal/v1/ips/{id}/customdata