我尝试在ec2实例上启动服务。该服务应该发出实例的id。我知道这可以使用类似curl http://0.0.0.0/latest/meta-data
的东西获得。有没有其他方法可以直接从实例shell或python中的某些API获取元数据?
答案 0 :(得分:10)
Amazon EC2 instance metadata可通过以下方式访问:
<div class="row" >
<div class="col col-50">
<ion-list>
<ion-item ng-repeat="item in items" item="item" href="#/item/{{item.id}}">
Item {{ item.id }}
</ion-item>
</ion-list>
<ion-infinite-scroll ng-if="!noMoreItemsAvailable" on-infinite="loadMore()" distance="10%" style="height:100%;"></ion-infinite-scroll>
</div>
<div class="col col-50">
Very large column with variable height
</div>
</div>
要检索发出该请求的实例的ID:
http://169.254.169.254/latest/meta-data/
这可以通过curl,wget,网络浏览器或调用检索HTTP页面的任何内容来检索。
如果您希望以编程方式执行此操作,请参阅boto3 equivalent to boto.utils.get_instance_metadata()?中的一些代码:
http://169.254.169.254/latest/meta-data/instance-id/
还有一个boto.utils.get_instance_metadata()
call in boto(但不是boto3)将实例元数据作为嵌套的Python字典返回。