我试图弄清楚我是运行在普通的计算机还是ec2(基于JVM的应用程序)。 简单的方法可能是尝试获取实例数据 ,但这意味着我应该等到超时,并且感觉不对。 有一个更快的方法来知道这个吗?
Amazon Windows AMI随附“EC2Config”服务。 如果我们可以对你的环境做一些假设(比如…你也不是在本地运行一些名为EC2Config的服务),那么你可能会利用这一点。
如果您可以列出机器上可用的服务,则可以searchEC2Config服务。 以下是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,但是一些Google的search表明它不应该太糟糕。