我试图弄清楚我是在普通计算机上运行还是在 ec2 上运行(从基于 JVM 的应用程序)。简单的方法可能是尝试获取实例数据,但是这意味着我应该等到超时,感觉不对。有没有更快的方法知道这一点?
答案1
Amazon Windows AMI 已安装“EC2Config”服务。如果我们可以对您的环境做出一些假设(例如...您没有在本地运行名为 EC2Config 的某些服务),那么您可能能够利用这一点。
如果你可以列出机器上可用的服务,你可以搜索EC2配置服务。下面是 PowerShell 中的一个示例,其中我使用Get-Service
,并且如果名为“Ec2Config”的服务数量大于零,则返回 true:
在 EC2 上:
PS C:\> @(Get-Service -Name "Ec2Config" -ErrorAction 'SilentlyContinue').Count -gt 0
True
在本地:
PS C:\> @(Get-Service -Name "Ec2Config" -ErrorAction 'SilentlyContinue').Count -gt 0
False
我无法帮助您实现 Java,但一些快速的谷歌搜索表明它应该不会太糟糕。