Làm cách nào để lấy id cá thể từ bên trong một thể hiện ec2?


Câu trả lời:


534

Xem tài liệu EC2 về chủ đề này .

Chạy:

wget -q -O - http://169.254.169.254/latest/meta-data/instance-id

Nếu bạn cần truy cập theo chương trình vào ID cá thể từ trong tập lệnh,

die() { status=$1; shift; echo "FATAL: $*"; exit $status; }
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"

Một ví dụ về sử dụng nâng cao hơn (lấy ID cá thể cũng như vùng khả dụng và vùng, v.v.):

EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
test -n "$EC2_INSTANCE_ID" || die 'cannot obtain instance-id'
EC2_AVAIL_ZONE="`wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || die \"wget availability-zone has failed: $?\"`"
test -n "$EC2_AVAIL_ZONE" || die 'cannot obtain availability-zone'
EC2_REGION="`echo \"$EC2_AVAIL_ZONE\" | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:'`"

Bạn cũng có thể sử dụng curlthay vì wget, tùy thuộc vào những gì được cài đặt trên nền tảng của bạn.


@Leopd, rõ ràng bạn biết rõ hơn những người ở Amazon đã triển khai EC2 và viết tài liệu. Ngẫu nhiên, không ai dừng bạn từ việc tạo ra một bí danh cho 169.254.169.254trong /etc/hostsnếu mà làm cho bạn cảm thấy an toàn hơn, nên bạn ... chăm sóc.
vladr

2
Còn trong Java SDK thì sao? Có cách nào để có được điều này mà không cần phải thực hiện GET trên url đó không? Có vẻ lạ nếu nó không có trong SDK
Kevin M

1
Rất hữu ích, cảm ơn. Đối với những người khác đang cố gắng tìm ra biểu thức chính quy ở dòng cuối cùng, đây là những gì tôi nghĩ ra: Ở cuối dòng ( $), hãy tìm một hoặc nhiều chữ số theo sau một hoặc nhiều chữ cái viết thường. Thay thế chỉ với các chữ số. (Dấu gạch chéo ngược + dấu ngoặc đơn cho sed nhớ một chuỗi con, được gọi lại bằng \1.) Tôi thấy điều này dễ đọc hơn một chút - dấu gạch chéo ngược duy nhất là những dấu gạch chéo được yêu cầu bởi sed : EC2_REGION="$(echo "$EC2_AVAIL_ZONE" | sed -e 's:\([0-9][0-9]*\)[a-z]*$:\1:')".
Mark Berry

66
Bạn có thể loại bỏ các số ma thuật bằng cách sử dụng http://instance-data/thay vì169.254.169.254
Jay P.

20
Tôi đã kiểm tra điều này vào ngày 2016/02/2016. Tôi thấy rằng tên máy chủ "dữ liệu cá thể" là (a) không được liệt kê trong tài liệu đó và (b) không hoạt động (đối với tôi) trên máy chủ EC2 mới. Tài liệu - docs.aws.amazon.com/AWSEC2/latest/UserGuide/ nam - chỉ đề cập đến địa chỉ 169.254 và không đề cập đến tên máy chủ "dữ liệu cá thể". tức là sử dụng 169.254.169.254/latest/meta-data/instance-id
JDS

138

Trên Amazon Linux AMIs bạn có thể làm:

$ ec2-metadata -i
instance-id: i-1234567890abcdef0

Hoặc, trên Ubuntu và một số hương vị linux khác, ec2metadata --instance-id(Lệnh này có thể không được cài đặt theo mặc định trên ubfox, nhưng bạn có thể thêm nó với sudo apt-get install cloud-utils)

Như tên của nó cho thấy, bạn cũng có thể sử dụng lệnh để nhận siêu dữ liệu hữu ích khác.


3
Nếu bạn đang suy nghĩ về việc sử dụng nó, bài viết này đáng để đọc (tldr: là các công cụ dòng lệnh là java và java có thời gian khởi động dài)
James

Câu trả lời hay nhất
Chuck Le Mông

@Marc Nope. Không -sau ec2. Đó làec2metadata --instance-id
Dawny33

5
Lệnh này khác với các Linux khác nhau: trên Amazon Linux ec2-metadata, trên Ubuntu có vẻ như vậy ec2metadata.
James

Phải James, tôi đã tìm thấy cùng một ec2metadata để làm việc trên Ubuntu.
pyAddict

69

Trên Ubuntu bạn có thể:

sudo apt-get install cloud-utils

Và sau đó bạn có thể:

EC2_INSTANCE_ID=$(ec2metadata --instance-id)

Bạn có thể nhận được hầu hết các siêu dữ liệu được liên kết với thể hiện theo cách này:

ec2metadata - trợ giúp
Cú pháp: / usr / bin / ec2metadata [tùy chọn]

Truy vấn và hiển thị siêu dữ liệu EC2.

Nếu không có tùy chọn nào được cung cấp, tất cả các tùy chọn sẽ được hiển thị

Tùy chọn:
    -h - trợ giúp hiển thị trợ giúp này

    --kernel-id hiển thị id kernel
    --ramdisk-id hiển thị id ramdisk
    --reservation-id hiển thị id đặt phòng

    --ami-id hiển thị id ami
    --ami-launch-index hiển thị chỉ mục khởi động ami
    --ami-manifest-path hiển thị đường dẫn kê khai ami
    --ancestor-ami-ids hiển thị id tổ tiên ami
    - mã sản phẩm hiển thị mã sản phẩm liên quan đến ami
    - vùng sẵn có hiển thị vùng vị trí ami

    --instance-id hiển thị id cá thể
    --instance-type hiển thị loại thể hiện

    --local-hostname hiển thị tên máy chủ cục bộ
    --public-hostname hiển thị tên máy chủ công cộng

    --local-ipv4 hiển thị địa chỉ ipvv4 cục bộ
    --public-ipv4 hiển thị địa chỉ IP ipv4 công khai

    --block-device-maps hiển thị id thiết bị khối
    - an toàn-nhóm hiển thị các nhóm bảo mật

    --mac hiển thị địa chỉ mac dụ
    --profile hiển thị hồ sơ cá nhân
    --instance-action hiển thị trường hợp hành động

    Phím công khai hiển thị các khóa công khai
    --user-data hiển thị dữ liệu người dùng (không thực sự là siêu dữ liệu)

Trong Ubuntu lucid apt-get installlấy phiên bản 0.11-0ubfox1 không chứa tiện ích này. Nó đã được thêm vào gói ngay sau đó .
Aryeh Leib Taurog

7
Gói utils đám mây được bao gồm theo mặc định trên Ubuntu 12.04.1 LTS Cluster Compute AMI.
Andrew

2
đám mây dường như cũng ở trong RHEL / CentOS
Craig Ringer

50

Sử dụng /dynamic/instance-identity/documentURL nếu bạn cũng cần truy vấn nhiều hơn chỉ ID cá thể của bạn.

wget -q -O - http://169.254.169.254/latest/dynamic/instance-identity/document

Điều này sẽ giúp bạn có được dữ liệu JSON như thế này - chỉ với một yêu cầu .

{
    "devpayProductCodes" : null,
    "privateIp" : "10.1.2.3",
    "region" : "us-east-1",
    "kernelId" : "aki-12345678",
    "ramdiskId" : null,
    "availabilityZone" : "us-east-1a",
    "accountId" : "123456789abc",
    "version" : "2010-08-31",
    "instanceId" : "i-12345678",
    "billingProducts" : null,
    "architecture" : "x86_64",
    "imageId" : "ami-12345678",
    "pendingTime" : "2014-01-23T45:01:23Z",
    "instanceType" : "m1.small"
}

1
+1 để hiển thị tất cả các chi tiết, bao gồm cả instanceType trong một cuộc gọi đơn giản
Luksquil

1
+1 để có một dòng khá chuẩn (chỉ wget) và dòng làm việc (url dữ liệu thể hiện không hoạt động với tôi trên amazon linux), mà không cài đặt các gói bổ sung chỉ cho nhiệm vụ đơn giản này.
tishma

27

Dành cho .NETmọi người:

string instanceId = new StreamReader(
      HttpWebRequest.Create("http://169.254.169.254/latest/meta-data/instance-id")
      .GetResponse().GetResponseStream())
    .ReadToEnd();

24

trên AWS Linux:

ec2-metadata --instance-id | cut -d " " -f 2

Đầu ra:

i-33400429

Sử dụng trong các biến:

ec2InstanceId=$(ec2-metadata --instance-id | cut -d " " -f 2);
ls "log/${ec2InstanceId}/";

Cách sạch sẽ và súc tích. Làm việc với một ví dụ với Ubuntu 14.
berbt

22

Đối với người có quyền hạn:

(New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")

4
chỉ khác biệt:$instanceId=(Invoke-WebRequest -Uri 'http://169.254.169.254/latest/meta-data/instance-id').Content
Sumit Murari

Invoke-WebRequest không luôn hoạt động khi chạy tập lệnh trên phiên bản EC2 đã nói với lệnh gửi ssm (hoặc Send-SSMCommand). Nó không thực sự nói trong các tài liệu . Có thể nó không đồng bộ ... sẽ là lạ. Nhưng tùy chọn của stefancaunter hoạt động không có vấn đề cho đến nay.
J-Roel

22

Đối với Python:

import boto.utils
region=boto.utils.get_instance_metadata()['local-hostname'].split('.')[1]

mà sôi xuống với một lớp lót:

python -c "import boto.utils; print boto.utils.get_instance_metadata()['local-hostname'].split('.')[1]"

Thay vì local_hostname, bạn cũng có thể sử dụng public_hostname hoặc:

boto.utils.get_instance_metadata()['placement']['availability-zone'][:-1]

Tất cả các phiên bản mới hơn của boto tôi thấy cho phép bạn gọi trực tiếp khóa "instance_id". Tôi đã thực hiện các chỉnh sửa được đề xuất có liên quan.
sacarine

8
inst_id = boto.utils.get_instance_metadata () ['instance-id']
atisman

Bạn có nhận ra điều này có được khu vực mà cá thể nằm trong, chứ không phải id cá thể như câu hỏi được yêu cầu, phải không?
LukeGT

2
Đối với bất cứ ai tự hỏi, đây là trong boto nhưng chưa có trong boto3. Xem stackoverflow.com/a/33733852 để biết cách giải quyết bằng urllib. Có một yêu cầu tính năng mở tại github.com/boto/boto3/issues/313 FWIW, SDK SDK cũng có điều này: docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ Sử dụngnew AWS.MetadataService().request('instance-id',function(error,data) { myInstanceId = data; })
Armadillo Jim

20

Đối với tất cả các máy ec2, id-id có thể được tìm thấy trong tệp:

    /var/lib/cloud/data/instance-id

Bạn cũng có thể lấy id cá thể bằng cách chạy lệnh sau:

    ec2metadata --instance-id

2
Đây là một giải pháp rất sạch sẽ, không yêu cầu HTTP.
Yuri

Câu trả lời tốt nhất có thể thực sự
Shlublu

1
Câu trả lời tuyệt vời nhưng tôi không thể tìm thấy một tài liệu tham khảo cho điều này trong tài liệu. Tôi có thể hỏi tham khảo của bạn là gì? Mối quan tâm là nếu chúng ta sẽ chạy mã này trong sản xuất, làm sao chúng ta biết nó sẽ không thay đổi trong tương lai?
shaya ajzner

Tất cả các máy ec2 linux , có lẽ, nhưng chắc chắn không phải tất cả các máy ec2. Không có tập tin như vậy trên Windows. C:\ProgramData\Amazon\EC2-Windows\Launch\Log\Ec2Launch.logchứa Id cá thể, nhưng cũng có rất nhiều thứ linh tinh khác.
James

14

Xem bài đăng này - lưu ý rằng địa chỉ IP trong URL đã cho là không đổi (lúc đầu làm tôi bối rối), nhưng dữ liệu trả về là cụ thể cho trường hợp của bạn.


Liên kết là 404ing cho tôi
repalviglator

Kiểm tra câu trả lời của @ DEtDev bên dưới; Câu trả lời của tôi khá cũ và có vẻ như liên kết đã bị gỡ xuống.
gareth_bowles

10

Đối với Ruby:

require 'rubygems'
require 'aws-sdk'
require 'net/http'

metadata_endpoint = 'http://169.254.169.254/latest/meta-data/'
instance_id = Net::HTTP.get( URI.parse( metadata_endpoint + 'instance-id' ) )

ec2 = AWS::EC2.new()
instance = ec2.instances[instance_id]

1
Các bạn WTF?! Bạn đã đánh cắp bản chỉnh sửa của tôi! stackoverflow.com/review/suggested-edits/4035074
kixorz

3
Lấy làm tiếc. Không biết làm thế nào để nói "Đó là một chỉnh sửa tốt. Tôi là OP. Chấp nhận điều này".
Kevin Meyer

10

Một giải pháp hiện đại hơn.

Từ Amazon Linux, lệnh siêu dữ liệu ec2 đã được cài đặt.

Từ thiết bị đầu cuối

ec2-metadata -help

Sẽ cung cấp cho bạn các tùy chọn có sẵn

ec2-metadata -i

sẽ trở lại

instance-id: yourid

1
tốt hơn nhiều so với việc phụ thuộc vào ip giả
Mike D

kết hợp ec2-metadatavới motdtài liệu của bạn tại đây: coderwall.com/p/hr_9pw/motds-on-amazon-amis
Mike D

2
Trong ảnh Ubuntu, lệnh là "ec2metadata --instance-id" và sẽ chỉ trả về giá trị id cá thể
Alberto Megía

10

Chỉ loại:

ec2metadata --instance-id

bạn đang sử dụng AMI nào?
Akash Arya

4
Rõ ràng đó là một lệnh cho Amazon AMI, bạn nên cập nhật câu trả lời của mình
rambossa

@ WédneyYuri Vâng.
Akash Arya

9

Bạn có thể thử điều này:

#!/bin/bash
aws_instance=$(wget -q -O- http://169.254.169.254/latest/meta-data/instance-id)
aws_region=$(wget -q -O- http://169.254.169.254/latest/meta-data/hostname)
aws_region=${aws_region#*.}
aws_region=${aws_region%%.*}
aws_zone=`ec2-describe-instances $aws_instance --region $aws_region`
aws_zone=`expr match "$aws_zone" ".*\($aws_region[a-z]\)"`

8

Một lớp c # .net tôi đã viết cho siêu dữ liệu EC2 từ http api. Tôi sẽ xây dựng nó với chức năng khi cần thiết. Bạn có thể chạy với nó nếu bạn thích nó.

using Amazon;
using System.Net;

namespace AT.AWS
{
    public static class HttpMetaDataAPI
    {
        public static bool TryGetPublicIP(out string publicIP)
        {
            return TryGetMetaData("public-ipv4", out publicIP);
        }
        public static bool TryGetPrivateIP(out string privateIP)
        {
            return TryGetMetaData("local-ipv4", out privateIP);
        }
        public static bool TryGetAvailabilityZone(out string availabilityZone)
        {
            return TryGetMetaData("placement/availability-zone", out availabilityZone);
        }

        /// <summary>
        /// Gets the url of a given AWS service, according to the name of the required service and the AWS Region that this machine is in
        /// </summary>
        /// <param name="serviceName">The service we are seeking (such as ec2, rds etc)</param>
        /// <remarks>Each AWS service has a different endpoint url for each region</remarks>
        /// <returns>True if the operation was succesful, otherwise false</returns>
        public static bool TryGetServiceEndpointUrl(string serviceName, out string serviceEndpointStringUrl)
        {
            // start by figuring out what region this instance is in.
            RegionEndpoint endpoint;
            if (TryGetRegionEndpoint(out endpoint))
            {
                // now that we know the region, we can get details about the requested service in that region
                var details = endpoint.GetEndpointForService(serviceName);
                serviceEndpointStringUrl = (details.HTTPS ? "https://" : "http://") + details.Hostname;
                return true;
            }
            // satisfy the compiler by assigning a value to serviceEndpointStringUrl
            serviceEndpointStringUrl = null;
            return false;
        }
        public static bool TryGetRegionEndpoint(out RegionEndpoint endpoint)
        {
            // we can get figure out the region end point from the availability zone
            // that this instance is in, so we start by getting the availability zone:
            string availabilityZone;
            if (TryGetAvailabilityZone(out availabilityZone))
            {
                // name of the availability zone is <nameOfRegionEndpoint>[a|b|c etc]
                // so just take the name of the availability zone and chop off the last letter
                var nameOfRegionEndpoint = availabilityZone.Substring(0, availabilityZone.Length - 1);
                endpoint = RegionEndpoint.GetBySystemName(nameOfRegionEndpoint);
                return true;
            }
            // satisfy the compiler by assigning a value to endpoint
            endpoint = RegionEndpoint.USWest2;
            return false;
        }
        /// <summary>
        /// Downloads instance metadata
        /// </summary>
        /// <returns>True if the operation was successful, false otherwise</returns>
        /// <remarks>The operation will be unsuccessful if the machine running this code is not an AWS EC2 machine.</remarks>
        static bool TryGetMetaData(string name, out string result)
        {
            result = null;
            try { result = new WebClient().DownloadString("http://169.254.169.254/latest/meta-data/" + name); return true; }
            catch { return false; }
        }

/************************************************************
 * MetaData keys.
 *   Use these keys to write more functions as you need them
 * **********************************************************
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
instance-action
instance-id
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
*************************************************************/
    }
}

7

SDK Java mới nhất có EC2MetadataUtils:

Trong Java:

import com.amazonaws.util.EC2MetadataUtils;
String myId = EC2MetadataUtils.getInstanceId();

Trong Scala:

import com.amazonaws.util.EC2MetadataUtils
val myid = EC2MetadataUtils.getInstanceId

5

Đối với C ++ (sử dụng cURL):

    #include <curl/curl.h>

    //// cURL to string
    size_t curl_to_str(void *contents, size_t size, size_t nmemb, void *userp) {
        ((std::string*)userp)->append((char*)contents, size * nmemb);
        return size * nmemb;
    };

    //// Read Instance-id 
    curl_global_init(CURL_GLOBAL_ALL); // Initialize cURL
    CURL *curl; // cURL handler
    CURLcode res_code; // Result
    string response;
    curl = curl_easy_init(); // Initialize handler
    curl_easy_setopt(curl, CURLOPT_URL, "http://169.254.169.254/latest/meta-data/instance-id");
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_to_str);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
    res_code = curl_easy_perform(curl); // Perform cURL
    if (res_code != CURLE_OK) { }; // Error
    curl_easy_cleanup(curl); // Cleanup handler
    curl_global_cleanup(); // Cleanup cURL

3

Đơn giản chỉ cần kiểm tra các var/lib/cloud/instanceliên kết tượng trưng, nó phải trỏ đến /var/lib/cloud/instances/{instance-id}nơi {instance_id}là bạn dụ-id.


1
Tôi sẽ không sử dụng điều này. Bạn nên sử dụng yêu cầu HTTP được phê duyệt để nhận siêu dữ liệu.
Daisuke Aramaki

3

Nếu bạn muốn lấy danh sách id tất cả trong python thì đây là mã:

import boto3

ec2=boto3.client('ec2')
instance_information = ec2.describe_instances()

for reservation in instance_information['Reservations']:
   for instance in reservation['Instances']:
      print(instance['InstanceId'])

2

FWIW Tôi đã viết một hệ thống tập tin FUSE để cung cấp quyền truy cập vào dịch vụ siêu dữ liệu EC2: https://bitbucket.org/dgc/ec2mdfs . Tôi chạy cái này trên tất cả các AMI tùy chỉnh; nó cho phép tôi sử dụng thành ngữ này: cat / ec2 / meta-data / ami-id


2

Trong Go bạn có thể sử dụng gói goamz .

import (
    "github.com/mitchellh/goamz/aws"
    "log"
)

func getId() (id string) {
    idBytes, err := aws.GetMetaData("instance-id")
    if err != nil {
        log.Fatalf("Error getting instance-id: %v.", err)
    }

    id = string(idBytes)

    return id
}

Đây là nguồn GetMetaData.


1

Trong câu hỏi bạn đã đề cập đến người dùng là root, một điều tôi nên đề cập là ID cá thể không phụ thuộc vào người dùng.

Đối với các nhà phát triển Node ,

var meta  = new AWS.MetadataService();

meta.request("/latest/meta-data/instance-id", function(err, data){
    console.log(data);
});

1

Để có được siêu dữ liệu cá thể, hãy sử dụng

wget -q -O - http://169.254.169.254/latest/meta-data/instance-id

0

Bạn chỉ có thể thực hiện một yêu cầu HTTP để NHẬN bất kỳ Siêu dữ liệu nào bằng cách chuyển các tham số siêu dữ liệu của bạn.

curl http://169.254.169.254/latest/meta-data/instance-id

hoặc là

wget -q -O - http://169.254.169.254/latest/meta-data/instance-id

Bạn sẽ không được lập hóa đơn cho các yêu cầu HTTP để nhận Siêu dữ liệu và Userdata.

Khác

Bạn có thể sử dụng Công cụ truy vấn siêu dữ liệu EC2 là một tập lệnh bash đơn giản sử dụng curl để truy vấn siêu dữ liệu EC2 từ bên trong một phiên bản EC2 đang chạy như được đề cập trong tài liệu.

Tải xuống công cụ:

$ wget http://s3.amazonaws.com/ec2metadata/ec2-metadata

Bây giờ chạy lệnh để có được dữ liệu cần thiết.

$ec2metadata -i

Tham khảo:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

https://aws.amazon.com/items/1825?externalID=1825

Vui vẻ giúp đỡ.. :)


0

Cách tiếp cận khác cho PHP:

$instance = json_decode(file_get_contents('http://169.254.169.254/latest/dynamic/instance-identity/document'),true);
$id = $instance['instanceId'];
print_r($instance);

Điều đó sẽ cung cấp rất nhiều dữ liệu về thể hiện, tất cả được đóng gói độc đáo trong một mảng, không phụ thuộc bên ngoài. Vì đó là một yêu cầu không bao giờ thất bại hoặc bị trì hoãn đối với tôi, nên an toàn để thực hiện theo cách đó, nếu không tôi sẽ thực hiện curl ()


0

Đối với PHP:

$instance = json_decode(file_get_contents('http://169.254.169.254/latest/dynamic/instance-identity/document));
$id = $instance['instanceId'];

Chỉnh sửa mỗi @John


Nhưng tại sao bạn lại sử dụng GuzzeHttp cho mục đích đó nếu bạn có các hàm curl và tự nhiên trong PHP?
Giăng

Đó là sở thích của tôi. Tôi sử dụng guelling cho nhiều thứ khác, nó là một điều kiện tiên quyết chung cho nhiều gói khác.
Beachhouse

$ instance = json_decode (file_get_contents (' 169.254.169.254/latest/dynamic/instance-identity/ trộm ); $ id = $ dụ [' instanceId ']; Tôi biết rằng Gujection là phổ biến, tôi chưa bao giờ chạm vào nó. một nhiệm vụ đơn giản tôi sẽ cung cấp cách tiếp cận nhẹ nhất.
John


0

Tất cả dữ liệu meta liên quan đến tài nguyên EC2 có thể được truy cập bởi chính đối tượng EC2 với sự trợ giúp của lệnh sau được thực thi:

XOĂN :

http://169.254.169.254/<api-version>/meta-data/<metadata-requested>

Đối với trường hợp của bạn: " yêu cầu siêu dữ liệu " phải là id-id , " phiên bản api " thường là phiên bản mới nhất có thể được sử dụng.

Lưu ý bổ sung: Bạn cũng có thể nhận thông tin liên quan đến các thuộc tính EC2 bên dưới bằng lệnh trên.

ami-id, ami-launch-index, ami-manifest-path, block-device-maps /, hostname, iam /, instance-action, instance-id, instance-type, local-hostname, local-ipv4, mac, số liệu /, mạng /, vị trí /, hồ sơ, tên máy chủ công cộng, công khai ipv4, khóa công khai /, id-id, nhóm bảo mật, dịch vụ /,

Để biết thêm chi tiết, vui lòng theo liên kết sau: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html


0

Ví dụ về Windows:

(wget http://169.254.169.254/latest/meta-data/instance-id).Content

hoặc là

(ConvertFrom-Json (wget http://169.254.169.254/latest/dynamic/instance-identity/document).Content).instanceId

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.