ECI執行個體的中繼資料可以提供關於ECI執行個體及其容器的資訊用於管理和使用容器,例如名稱、ID等基本資料,以及IP地址、網卡等網路資訊等。本文介紹如何在容器內擷取中繼資料,將ECI執行個體資訊和容器Meta資料呈現給運行中的容器。
方式一:通過MetaServer訪問中繼資料
串連容器。具體操作,請參見串連ECI執行個體。
訪問中繼資料。
說明如果容器環境沒有安裝curl,請先安裝curl。
curl http://100.100.100.200/latest/meta-data/<metadata><metadata>請替換為具體要查詢的執行個體中繼資料。例如執行以下命令擷取執行個體ID。curl http://100.100.100.200/latest/meta-data/instance-idECI執行個體目前能擷取的基本執行個體中繼資料項如下表所示:
執行個體中繼資料項
說明
/dns-conf/nameservers
執行個體的DNS配置。
/eipv4
執行個體的Elastic IP Address(IPv4類型)。
/hostname
執行個體的主機名稱,對應ContainerGroupName。
/instance-id
執行個體ID。
/mac
執行個體的MAC地址。
/network/interfaces/
網卡的MAC地址清單。
/network/interfaces/macs/[mac]/network-interface-id
網卡的標識ID,其中[mac]參數需要替換為執行個體MAC地址。
/network/interfaces/macs/[mac]/netmask
網卡對應的子網路遮罩。
/network/interfaces/macs/[mac]/vswitch-cidr-block
網卡所屬的虛擬交換器IPv4 CIDR段。
/network/interfaces/macs/[mac]/vpc-cidr-block
網卡所屬的VPC IPv4 CIDR段。
/network/interfaces/macs/[mac]/private-ipv4s
網卡分配的私網IPv4地址清單。
/network/interfaces/macs/[mac]/vpc-ipv6-cidr-blocks
網卡所屬的VPC IPv6 CIDR段,僅支援已配置了IPv6的VPC類型執行個體。
/network/interfaces/macs/[mac]/vswitch-id
網卡所屬安全性群組的虛擬交換器ID。
/network/interfaces/macs/[mac]/vpc-id
網卡所屬安全性群組的VPC ID。
/network/interfaces/macs/[mac]/primary-ip-address
網卡主私人IP地址。
/network/interfaces/macs/[mac]/gateway
網卡對應的IPv4網關地址。
/instance/max-netbw-egress
執行個體規格的出方向內網最大頻寬。單位:Kbit/s。
/instance/max-netbw-ingerss
執行個體規格的入方向內網最大頻寬。單位:Kbit/s。
/network/interfaces/macs/[mac]/ipv6s
網卡分配的IPv6地址清單,僅支援已配置了IPv6的VPC類型執行個體。
/network/interfaces/macs/[mac]/ipv6-gateway
網卡所屬的VPC的IPv6網關地址。
/network/interfaces/macs/[mac]/vswitch-ipv6-cidr-block
網卡所屬的虛擬交換器IPv6 CIDR段,僅支援已配置了IPv6的VPC類型執行個體。
/private-ipv4
執行個體的私網IPv4地址。
/ntp-conf/ntp-servers
NTP伺服器位址。
/owner-account-id
執行個體擁有者的阿里雲帳號ID。
/region-id
執行個體所屬地區。
/serial-number
執行個體所對應的序號。
/vpc-id
執行個體所屬VPC ID。
/vpc-cidr-block
執行個體所屬VPC的CIDR網段。
/vswitch-cidr-block
執行個體所屬虛擬交換器的CIDR網段。
/vswitch-id
執行個體所屬虛擬交換器ID。
/zone-id
執行個體所屬可用性區域。
/ram/security-credentials/[role-name]
執行個體RAM角色策略所產生的STS臨時憑證。只有在執行個體指定了RAM角色後,您才能擷取STS臨時憑證。其中[role-name]參數需要替換為執行個體RAM角色的名稱。如果未指定[role-name],將返回執行個體RAM角色名稱。
方式二:配置容器環境變數
通過配置ECI執行個體容器環境變數的Value便可擷取執行個體相關資訊,ECI執行個體目前可以擷取到執行個體ID、執行個體名稱、執行個體所屬地區、執行個體所屬可用性區域、執行個體容器名稱等中繼資料項。
Key | Value | 說明 |
eci_id | __ECI_ID__ | 執行個體ID。 |
eci_name | __ECI_NAME__ | 執行個體名稱。 |
region_id | __REGION_ID__ | 執行個體所屬地區。 |
zone_id | __ZONE_ID__ | 執行個體所屬可用性區域。 |
container_name | __CONTAINER_NAME__ | 容器名稱。 |
配置樣本如下:
OpenAPI
調用CreateContainerGroup介面建立ECI執行個體時,可以通過Container.N.EnvironmentVar.N.Key和Container.N.EnvironmentVar.N.Value來設定環境變數。樣本如下:
ContainerGroupName=test-env
Container.1.Image=registry-vpc.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
Container.1.Name=container-1
# 自訂環境變數
Container.1.EnvironmentVar.1.Key=eci_id
Container.1.EnvironmentVar.2.Key=eci_name
Container.1.EnvironmentVar.3.Key=region_id
Container.1.EnvironmentVar.4.Key=zone_id
Container.1.EnvironmentVar.5.Key=container_name
Container.1.EnvironmentVar.1.Value=__ECI_ID__
Container.1.EnvironmentVar.2.Value=__ECI_NAME__
Container.1.EnvironmentVar.3.Value=__REGION_ID__
Container.1.EnvironmentVar.4.Value=__ZONE_ID__
Container.1.EnvironmentVar.5.Value=__CONTAINER_NAME__控制台
通過Elastic Container Instance控制台建立ECI執行個體時,您可以在容器配置地區選取項目容器,展開該容器的進階配置,然後開啟環境變數開關,添加環境變數。樣本如下:

建立ECI執行個體後,您可以串連容器查看是否生效。具體操作,請參見串連ECI執行個體。