我有一个批处理文件,我想在启动 EC2 Windows AMI 时运行它。我想从该批处理文件运行的程序将 EC2 机器的实例 ID 作为参数。将该实例 ID 作为参数传递给该程序的最简单方法是什么?
从亚马逊关于此主题的文档,我知道你应该向指定的 URL 发出 WGET 并解析响应。因此,提出这个问题的另一种方式可能是“如何将 HTTP 请求的内容作为 Windows 批处理文件中的参数传递给程序”
用伪代码来说,这就是我想要做的:
set ID = GET http://169.254.169.254/2008-08-08/meta-data/instance-id
myprogram.exe /instanceID=%ID%
对于我该如何进行,有什么建议吗?
答案1
答案2
替代方案:也许你可以使用电源外壳在 Amazon 的 EC2 上。以下是一些入门链接:
答案3
Powershell 是实现此目的最简单的方法:
$webclient = 新对象 System.Net.WebClient
$myip = $webclient.DownloadString("http://169.254.169.254/latest/meta-data/local-ipv4")
myprogram.exe /instanceID=$myip
答案4
所以我找到了另一种方法:
$instanceId = Get-EC2InstanceMetadata -Path '/instance-id'
它看起来干净多了,结果也只是包含了你期望的“实例 ID”