获取使用 ec2-api-tools 新启动的实例的 ID [英] Getting ID of an instance newly launched with ec2-api-tools

查看:11
本文介绍了获取使用 ec2-api-tools 新启动的实例的 ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在启动一个 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆