我在AWS负载均衡设置中托管了一个ASP.Net Core应用程序,其中包含x个实例。
我在网页底部显示实际为请求提供哪个EC2实例的内容。
是否有Nuget包或方便的API解决方案来实现这个目标?
自2009年以来有一个关于Stackoverflow的问题:Find out the instance id from within an ec2 machine使用wget调用http://169.254.169.254/latest/meta-data/instance-id来获取实例id的解决方案
我希望有一个Nuget包或类似API的解决方案来实现这一目标。
更新 - 解决方案
AWSSDK.Core(适用于.NET的Amazon Web Services SDK - Core Runtime)具有Amazon.Util.EC2InstanceMetadata
类,它具有InstanceId属性,允许对我需要的信息进行干净的访问。
谢谢你指出我正确的方向rodrigo-m。
ASP.NET的EC2Metadata
帮助程序类在2013年的AWS Developer Blog中宣布。本文描述了该实用程序类如何提供对EC2实例元数据的轻松访问:
几个月前,我们在SDK中添加了一个名为EC2Metadata的辅助工具。这是一个提供对EC2实例元数据的便捷访问的类。实用程序将大多数实例数据表示为静态字符串,将一些复杂数据表示为.NET结构例如,以下代码示例说明了如何检索当前EC2实例的Id和网络接口......
本文还提供了使用它的示例:
string instanceId = EC2Metadata.GetData("/instance-id");
Console.WriteLine("Current instance: {0}", instanceId);
使用此类,请考虑使用以下方法在ASP.NET Core应用程序中检索和存储EC2实例ID:
EC2Metadata
类公开了InstanceId
属性,该属性返回当前实例的实例Id。使用应用程序范围,您只需在应用程序初始化时检索此数据一次。此应用程序范围数据将在应用程序的生命周期内持续存在。