获取实例元数据

实例元数据概述

实例元数据提供有关正在运行实例的信息,例如网络配置、实例标识符以及其他运行时属性。元数据服务可通过实例内部的链路本地 IP 地址访问。

元数据条目以类似目录树的层级结构进行组织。每个路径表示一个元数据项,或包含其他元数据条目的子目录。

当请求某个元数据目录时,服务会返回该路径下所有可用的子目录或元数据项列表。

1. 常见使用场景

实例元数据通常被自动化工具、初始化脚本以及云原生应用在运行时用于获取实例特定的配置。

典型使用场景包括:

  • 初始化脚本 – 在启动期间获取实例信息,例如实例 ID、区域或 IP。

    INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
  • 网络配置发现 – 在具有多个网络接口的实例上识别网络接口、IP 地址或子网信息。

  • 临时凭证获取 – 通过元数据服务获取临时 API 凭证,而不是存储长期访问密钥。

  • 云初始化 – 初始化工具(例如 cloud-init)可以获取 user-datameta-data,在启动过程中配置实例。

2. 元数据服务端点

实例元数据服务可在实例内部通过以下基础 URL 访问:

在实例内部运行的应用程序或脚本可以通过向该端点发送 HTTP 请求来查询特定的元数据条目。

3. 示例:查询网络接口元数据

以下示例获取附加到实例的所有网络接口的 MAC 地址目录列表:

示例返回:

接下来,可以继续访问某个特定 MAC 地址的信息,例如:

即可获取该网络接口的 IP。

元数据详情

实例元数据以类似目录树的层级结构组织,并且可以逐级访问。当查询某个元数据目录时,服务会返回该路径下的子目录或元数据条目列表。

例如,查询 network/interfaces/macs/ 目录会返回附加到实例的所有网络接口的 MAC 地址目录。

基础网络配置

元数据
说明
示例

network/interfaces/macs/

实例上所有网络接口的 MAC 地址。

52:54:00:8d:XX:XX/ 52:54:00:3a:XX:XX/

/network/interfaces/macs/{mac addr}/

指定网络接口({mac addr})的元数据目录,其中 {mac addr} 为该接口的 MAC 地址。

ipv6-gateway network-interface-id primary-ip-address public-ipv4 public-ipv4s primary-ipv6-address ipv6-prefix gateway subnet-cidr-block subnet-ipv6-cidr-block

network/interfaces/macs/{mac addr}/network-interface-id

实例上指定网络接口的 ID。

161709631348749****

network/interfaces/macs/{mac addr}/primary-ip-address

指定网络接口的主内网 IPv4 地址。

10.0.0.7

network/interfaces/macs/{mac addr}/primary-ipv6-address

指定网络接口的主 IPv6 地址。

XXXX:XXXX:0:d6c8:0:1::2

network/interfaces/macs/{mac addr}/private-ipv4s

指定网络接口的辅内网 IPv4 地址(不包含主内网 IPv4 地址)。

["10.0.0.10"]

network/interfaces/macs/{mac addr}/public-ipv4

指定网络接口的默认出站公网 IPv4 地址。

XX.XX.206.251

network/interfaces/macs/{mac addr}/public-ipv4s

与指定网络接口关联的公网 IPv4 地址列表。

["XX.XX.206.251","XX.XX.214.234"]

network/interfaces/macs/{mac addr}/ipv6-prefix

指定网络接口的 IPv6 CIDR。

XXXX:XXXX:0:d6c8:0:1::/96

network/interfaces/macs/{mac addr}/gateway

指定网络接口的 IPv4 网关地址。

10.0.0.1

network/interfaces/macs/{mac addr}/ipv6-gateway

指定网络接口的 IPv6 网关地址。

fe80::1

network/interfaces/macs/{mac addr}/subnet-cidr-block

指定网络接口所属子网的 IPv4 CIDR 列表。

10.0.0.0/24

network/interfaces/macs/{mac addr}/subnet-ipv6-cidr-block

指定网络接口所属子网的 IPv6 CIDR 列表。

XXXX:XXXX:0:d6c8::/64

network/interfaces/macs/{mac addr}/subnet-id

指定网络接口所属子网的子网 ID。

161709631348749****

最后更新于