获取使用 ec2-api-tools 新启动的实例的 ID [英] Getting ID of an instance newly launched with ec2-api-tools
问题描述
我正在启动一个 EC2 实例,方法是调用 ec2-run-instances
来自简单的 bash 脚本,并希望对该实例执行进一步的操作(例如关联弹性 IP),为此我需要实例 ID.>
命令类似于ec2-run-instances ami-dd8ea5a9 -K pk.pem -C cert.pem --region eu-west-1 -t c1.medium -n 1
,及其输出:
RESERVATION r-b6ea58c1 696664755663 默认实例 i-945af9e3 ami-dd8ea5b9 待定 0 c1.medium 2010-04-15T10:47:56+0000 eu-west-1a aki-b02a01c4 ari-39c2e94d
在这个例子中,i-945af9e3
是我想要的 id.
所以,我需要一种简单的方法来从命令返回的内容中解析 id - 你会怎么做?我的 AWK 有点生疏……随意使用典型 Linux 机器上可用的任何工具.(如果有办法直接使用 EC2-API 工具获取它,那就更好了.但是 afaik 没有 EC2 命令来例如返回最近启动的实例的 id.)
好的,至少这样的事情应该可行:
instance_id=$(ec2-run-instances ami-dd8ea5a9 [...] | awk '/INSTANCE/{print $2}')
诚然,我有点懒惰,认为询问 SO 比重新学习一些 AWK 基础知识更快... :-)
编辑:按照 Dennis 的建议简化 AWK 的使用.此外,为了清晰起见,使用 $()
而不是 ``,并去掉了中间变量.
I'm launching an EC2 instance, by invoking ec2-run-instances
from simple a bash script, and want to perform further operations on that instance (e.g. associate elastic IP), for which I need the instance id.
The command is something like ec2-run-instances ami-dd8ea5a9 -K pk.pem -C cert.pem --region eu-west-1 -t c1.medium -n 1
, and its output:
RESERVATION r-b6ea58c1 696664755663 default
INSTANCE i-945af9e3 ami-dd8ea5b9 pending 0 c1.medium 2010-04-15T10:47:56+0000 eu-west-1a aki-b02a01c4 ari-39c2e94d
In this example, i-945af9e3
is the id I'm after.
So, I'd need a simple way to parse the id from what the command returns - how would you go about doing it? My AWK is a little rusty... Feel free to use any tool available on a typical Linux box. (If there's a way to get it directly using EC2-API-tools, all the better. But afaik there's no EC2 command to e.g. return the id of the most recently launched instance.)
Ok, at least something like this should work:
instance_id=$(ec2-run-instances ami-dd8ea5a9 [...] | awk '/INSTANCE/{print $2}')
Admittedly I was a bit lazy thinking that it's quicker to ask on SO than to relearn some AWK basics... :-)
Edit: simplified AWK usage as Dennis suggested. Also, using $()
instead of `` for clarity, and got rid of intermediate variable.
这篇关于获取使用 ec2-api-tools 新启动的实例的 ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!