要使用Amazon.Util.EC2InstanceMetadata获取EC2实例的元数据,需要确保正在正确运行代码的EC2实例已经将IAM角色分配给了正确的Amazon EC2实例元数据服务权限策略。由于这些元数据是只读的,因此Amazon EC2实例元数据服务不需要AWS凭证或IAM用户。如果您确保EC2实例中IAM角色已经配置正确但仍然接收null,则需要检查EC2实例是否可以访问Amazon EC2实例元数据服务。最简单的方法是从EC2实例中运行以下命令:curl http://169.254.169.254/latest/meta-data/ 它应该返回一些XML数据。如果看到“curl”错误,请确保您的EC2实例正在正确运行且已配置为连接到Internet。
以下是C#代码示例:
using Amazon.Util;
var metadata = EC2InstanceMetadata.Instance; //用EC2InstanceMetadata类获取EC2实例元数据。
//获取实例ID元数据:
var instanceId = metadata.InstanceId;
//获取可用区域元数据:
var availabilityZone = metadata.AvailabilityZone;
//获取所有元数据(以JSON格式):
var allMetadata = metadata.All;