实例元数据即表示实例的相关数据,可以用来配置或管理正在运行的实例。
说明:
虽然只能从实例自身内部访问实例元数据,但数据并未被加密保护。可访问实例的人员均可查看其元数据。因此,您应当采取适当的预防措施来保护敏感数据。
实例元数据分类
腾讯云现在提供如下元数据信息:
数据 | 描述 | 引入版本 |
instance-id | 实例 ID | 1.0 |
instance-name | 实例名称 | 1.0 |
uuid | 实例 UUID | 1.0 |
local-ipv4 | 实例内网 IP | 1.0 |
public-ipv4 | 实例公网 IP | 1.0 |
mac | 实例 eth0 设备 mac 地址 | 1.0 |
placement/region | 实例所在地域信息 | 2017-09-19 更新 |
placement/zone | 实例所在可用区信息 | 2017-09-19 更新 |
network/interfaces/macs/${mac}/mac | 实例网络接口设备地址 | 1.0 |
network/interfaces/macs/${mac}/primary-local-ipv4 | 实例网络接口主内网 IP 地址 | 1.0 |
network/interfaces/macs/${mac}/public-ipv4s | 实例网络接口公网 IP 地址 | 1.0 |
network/interfaces/macs/${mac}/vpc-id | 实例网络接口 VPC 网络 ID | 2017-09-19 更新 |
network/interfaces/macs/${mac}/subnet-id | 实例网络接口子网 ID | 2017-09-19 更新 |
network/interfaces/macs/${mac}/local-ipv4s/${local-ipv4}/gateway | 实例网络接口网关地址 | 1.0 |
network/interfaces/macs/${mac}/local-ipv4s/${local-ipv4}/local-ipv4 | 实例网络接口内网 IP 地址 | 1.0 |
network/interfaces/macs/${mac}/local-ipv4s/${local-ipv4}/public-ipv4 | 实例网络接口公网 IP 地址 | 1.0 |
network/interfaces/macs/${mac}/local-ipv4s/${local-ipv4}/public-ipv4-mode | 实例网络接口公网网络模式 | 1.0 |
network/interfaces/macs/${mac}/local-ipv4s/${local-ipv4}/subnet-mask | 实例网络接口子网掩码 | 1.0 |
payment/charge-type | 实例计费类型 | 2017-09-19 更新 |
payment/create-time | 实例创建时间 | 2017-09-19 更新 |
payment/termination-time | 实例销毁时间 | 2017-09-19 更新 |
app-id | 实例所属用户 AppId | 2017-09-19 更新 |
as-group-id | 实例所在弹性伸缩组 ID | 2017-09-19 更新 |
spot/termination-time | 竞价实例销毁时间 | 2017-09-19 更新 |
instance/instance-type | 实例规格 | 2017-09-19 更新 |
instance/image-id | 实例镜像 ID | 2017-09-19 更新 |
instance/security-group | 实例绑定安全组信息 | 2017-09-19 更新 |
instance/bandwidth-limit-egress | 实例内网出方向带宽限制,单位Kbit/s | 2019-09-29 更新 |
instance/bandwidth-limit-ingress | 实例内网入方向带宽限制,单位Kbit/s | 2019-09-29 更新 |
cam/security-credentials/${role-name} | 实例 CAM 角色策略所生成的临时凭证。临时凭证有效时长为12小时。只有在实例绑定了 CAM 角色后,您才能获取临时凭证。其中 ${role-name} 参数需要替换为实例 CAM 角色的名称。如果未指定,将返回404。 | 2019-12-11 更新 |
volumes | 实例存储 | 1.0 |
ntp/servers | NTP 服务器地址 | 1.0 |
public-keys/[index]/openssh-key | 实例公有密钥,仅在实例绑定了公有密钥的情况下可用 | 1.0 |
说明:
以上表格中
${mac}
和 ${local-ipv4}
字段分别表示实例指定网络接口的设备地址和内网 IP 地址。请求的目标URL地址,大小写敏感。请严格按照请求的返回结果来构造新请求的目标 URL 地址。
当前版本对 placement 返回数据发生了变更,若您需要使用以前版本的数据,则您可以指定以前版本路径或是不指定版本路径从而访问版本1.0的数据,对于placement返回数据请参见 地域和可用区。
查询实例元数据
在实例内部可以通过实例元数据访问实例本地 IP、公网 IP 等数据以管理与外部应用程序的连接。
要从运行实例内部查看所有类别的实例元数据,请使用以下 URL:
http://metadata.tencentyun.com/latest/meta-data/
您可以通过 cURL 工具或是 HTTP 的 GET 请求来访问 metadata,例如:
curl http://metadata.tencentyun.com/latest/meta-data/
对于不存在的资源,会返回 HTTP 错误代码404 - Not Found。
对实例元数据的操作均只能从实例内部进行。请先完成实例登录操作。有关登录实例的更多内容,请参见 登录 Windows 实例 和 登录 Linux 实例。
查询元数据示例
以下示例说明如何获取 metadata 版本信息。
注意:
当腾讯云修改 metadata 访问路径或返回数据时,会发布新的 metadata 版本,如果您的应用程序或脚本依赖于以前版本的结构或返回数据,则您可以使用指定早期版本访问 metadata。不指定版本则默认访问1.0版本。
[qcloud-user]# curl http://metadata.tencentyun.com/1.02017-09-19latestmeta-data
以下示例说明如何查看 metadata 根目录。其中以
/
结尾的单词表示目录,不以/
结尾的单词表示访问数据。具体访问数据含义请参考前文实例 metadata 分类。[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/instance-idinstance-namelocal-ipv4macnetwork/placement/public-ipv4uuid
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/placement/regionap-guangzhou[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/placement/zoneap-guangzhou-3
以下示例说明如何获取实例内网 IP。实例存在多张网卡时,返回 eth0 设备的网络地址。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/local-ipv410.104.13.59
以下示例说明如何获取实例公网 IP。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/public-ipv4139.199.11.29
以下示例说明如何获取实例 ID。实例 ID 是实例的唯一标识。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/instance-idins-3g445roi
以下示例说明如何获取实例 uuid。实例 uuid 可作为实例的唯一标识,推荐使用实例 ID 用于区分实例。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/uuidcfac763a-7094-446b-a8a9-b995e638471a
以下示例说明如何获取实例 eth0 设备 mac 地址。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/mac52:54:00:BF:B3:51
以下示例说明如何获取实例网卡信息。多张网卡会返回多行数据,每行数据为一张网卡的数据目录。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/
以下示例说明如何获取指定网卡信息。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/local-ipv4s/macvpc-idsubnet-idowner-idprimary-local-ipv4public-ipv4slocal-ipv4s/
以下示例说明如何获取指定网卡所属私有网络信息。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/vpc-idvpc-ja82n9op[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/subnet-idsubnet-ja82n9op
以下示例说明如何获取指定网卡绑定内网 IP 地址列表。网卡若绑定多个内网 IP ,则返回多行数据。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/local-ipv4s/10.104.13.59/
以下示例说明如何获取内网 IP 信息。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/local-ipv4s/10.104.13.59gatewaylocal-ipv4public-ipv4public-ipv4-modesubnet-mask
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/local-ipv4s/10.104.13.59/gateway10.15.1.1
以下示例说明如何获取内网 IP 访问公网模式。仅 VPC 机型可查询该数据。基础网络机型通过公网网关访问公网。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/local-ipv4s/10.104.13.59/public-ipv4-modeNAT
以下示例说明如何获取内网 IP 绑定公网 IP。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/local-ipv4s/10.104.13.59/public-ipv4139.199.11.29
以下示例说明如何获取内网 IP 子网掩码。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/52:54:00:BF:B3:51/local-ipv4s/10.104.13.59/subnet-mask255.255.192.0
以下示例说明如何获取实例计费类型。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/payment/charge-typePOSTPAID_BY_HOUR
以下示例说明如何获取实例创建时间。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/payment/create-time2018-09-18 11:27:33
以下示例说明如何获取实例销毁时间。(仅预付费模式)
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/payment/termination-time2018-10-18 11:27:33
以下示例说明竞价实例如何获取实例销毁时间。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/spot/termination-time2018-08-18 12:05:33
以下示例说明如何获取子机所属账户 AppId。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/app-id123456789
以下示例说明如何获取实例 CAM 角色所生成的临时凭证。CVMas 为示例使用的 rolename。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/cam/security-credentials/CVMas{"TmpSecretId": "************************************","TmpSecretKey": "********************************","ExpiredTime": 1615590047,"Expiration": "2021-03-12T23:00:47Z","Token": "******","Code": "Success"}
以下示例说明如何获取实例存储。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/volumesdisk-xxxxxxxx/
以下示例说明如何获取NTP服务器地址。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/ntp/serversntpupdate.tencentyun.com
以下示例说明如何获取实例公有密钥。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/public-keys/0/openssh-keyssh-rsa ****** skey-xxxxxxxx
查询实例用户数据
您可以在创建实例时指定实例用户数据,设置 cloud-init 后的子机可以访问到该数据。
检索用户数据
用户可以在子机内部通过以下方式访问用户数据。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/user-data179, client, shanghai