Elastic Container Instance のメタデータは、インスタンスとインスタンス上のコンテナに関する情報を提供し、コンテナの使用と管理を容易にします。メタデータによって提供される情報には、インスタンス名やインスタンス ID などの Elastic Container Instance の基本情報、およびインスタンスの IP アドレスやネットワークインターフェースコントローラー (NIC) などの Elastic Container Instance のネットワーク情報が含まれます。このトピックでは、コンテナから Elastic Container Instance のメタデータを取得し、実行中のコンテナにメタデータを提供する方法について説明します。
方法 1: MetaServer を使用してメタデータにアクセスする
コンテナに接続します。詳細については、Elastic Container Instance への接続 を参照してください。
メタデータにアクセスします。
説明コンテナに curl がインストールされていない場合は、curl をインストールしてください。
curl http://100.100.100.200/latest/meta-data/<metadata><metadata>を、クエリするメタデータ項目に置き換えます。たとえば、<metadata> を instance-id に置き換えます。curl http://100.100.100.200/latest/meta-data/instance-id次の表は、クエリできる Elastic Container Instance のメタデータ項目を示しています。
メタデータ項目
説明
/dns-conf/nameservers
Elastic Container Instance のドメインネームシステム (DNS) 設定。
/eipv4
Elastic Container Instance の Elastic IPv4 アドレス。
/hostname
Elastic Container Instance のホスト名。ContainerGroupName の値です。
/instance-id
Elastic Container Instance の ID。
/mac
Elastic Container Instance のメディアアクセス制御 (MAC) アドレス。
/network/interfaces/
NIC の MAC アドレス。
/network/interfaces/macs/[mac]/network-interface-id
NIC の ID。[mac] を Elastic Container Instance の MAC アドレスに置き換えます。
/network/interfaces/macs/[mac]/netmask
NIC のサブネットマスク。
/network/interfaces/macs/[mac]/vswitch-cidr-block
NIC が接続されている vSwitch の IPv4 CIDR ブロック。
/network/interfaces/macs/[mac]/vpc-cidr-block
NIC が属する仮想プライベートクラウド (VPC) の IPv4 CIDR ブロック。
/network/interfaces/macs/[mac]/private-ipv4s
NIC に割り当てられたプライベート IPv4 アドレス。
/network/interfaces/macs/[mac]/vpc-ipv6-cidr-blocks
NIC が属する VPC の IPv6 CIDR ブロック。この項目は、VPC 内にあり、IPv6 アドレスが割り当てられている Elastic Container Instance にのみ適用されます。
/network/interfaces/macs/[mac]/vswitch-id
NIC のセキュリティグループと同じ VPC にある vSwitch の ID。
/network/interfaces/macs/[mac]/vpc-id
NIC のセキュリティグループがある VPC の ID。
/network/interfaces/macs/[mac]/primary-ip-address
NIC のプライマリプライベート IP アドレス。
/network/interfaces/macs/[mac]/gateway
NIC の IPv4 ゲートウェイアドレス。
/instance/max-netbw-egress
Elastic Container Instance の最大アウトバウンド内部帯域幅。単位: Kbit/s。
/instance/max-netbw-ingerss
Elastic Container Instance の最大インバウンド内部帯域幅。単位: Kbit/s。
/network/interfaces/macs/[mac]/ipv6s
NIC に割り当てられた IPv6 アドレス。この項目は、VPC 内にあり、IPv6 アドレスが割り当てられている Elastic Container Instance にのみ適用されます。
/network/interfaces/macs/[mac]/ipv6-gateway
NIC が属する VPC の IPv6 ゲートウェイアドレス。
/network/interfaces/macs/[mac]/vswitch-ipv6-cidr-block
NIC が接続されている vSwitch の IPv6 CIDR ブロック。この項目は、VPC 内にあり、IPv6 アドレスが割り当てられている Elastic Container Instance にのみ適用されます。
/private-ipv4
Elastic Container Instance のプライベート IPv4 アドレス。
/ntp-conf/ntp-servers
ネットワークタイムプロトコル (NTP) サーバーのアドレス。
/owner-account-id
Elastic Container Instance が属する Alibaba Cloud アカウントの ID。
/region-id
Elastic Container Instance のリージョン ID。
/serial-number
Elastic Container Instance のシリアル番号。
/vpc-id
Elastic Container Instance が存在する VPC の ID。
/vpc-cidr-block
Elastic Container Instance が存在する VPC の CIDR ブロック。
/vswitch-cidr-block
Elastic Container Instance が接続されている vSwitch の CIDR ブロック。
/vswitch-id
Elastic Container Instance が接続されている vSwitch の ID。
/zone-id
Elastic Container Instance のゾーン ID。
/ram/security-credentials/[role-name]
Elastic Container Instance の Resource Access Management (RAM) ロールに対して生成された一時的な Security Token Service (STS) 認証情報。Elastic Container Instance に RAM ロールを指定した後でのみ、一時的な STS 認証情報を取得できます。[role-name] を RAM ロールの名前に置き換えます。[role-name] を RAM ロールの名前に置き換えない場合、Elastic Container Instance の名前が返されます。
方法 2: コンテナの環境変数を設定する
インスタンス上のコンテナの環境変数を設定することで、Elastic Container Instance に関する情報を取得できます。この方法で取得できる Elastic Container Instance のメタデータ項目には、インスタンス ID、インスタンス名、インスタンスのリージョン ID、インスタンスのゾーン ID、およびコンテナ名が含まれます。
キー | 値 | 説明 |
eci_id | __ECI_ID__ | Elastic Container Instance の ID。 |
eci_name | __ECI_NAME__ | Elastic Container Instance の名前。 |
region_id | __REGION_ID__ | Elastic Container Instance のリージョン ID。 |
zone_id | __ZONE_ID__ | Elastic Container Instance のゾーン ID。 |
container_name | __CONTAINER_NAME__ | コンテナの名前。 |
例:
OpenAPI
CreateContainerGroup オペレーションを呼び出して Elastic Container Instance を作成する場合、次のサンプルコードに示すように、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 コンソールで Elastic Container Instance を作成する場合、コンテナ設定セクションでコンテナを選択し、コンテナの詳細設定を展開し、環境変数をオンにして、次の図に示すように環境変数を追加できます。

Elastic Container Instance が作成された後、コンテナに接続して、設定された環境変数が有効になっているかどうかを確認できます。詳細については、Elastic Container Instance への接続 を参照してください。