AWS CLI:在aws ec2 run-instances中将参数传递给--user-data(shell-script)

时间:2017-07-03 13:52:26

标签: aws-cli

我正在尝试通过cli启动aws ec2实例。

aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 \
 --instance-type t2.medium --key-name myKey \
 --security-group-ids sg-yyyyyyyy --subnet-id subnet-mysubnet \ 
 --region us-east-1 --user-data file://myscript

启动时我调用一个运行一些基本命令的shell脚本。 我想知道是否有办法将参数传递给这个

--user-data file://myscript

示例shell脚本:

echo $1
echo $2

2 个答案:

答案 0 :(得分:2)

我认为你不能,至少我们从未这样做过。

然而,我们所做的是在我们的用户数据中安装awcli工具(例如通过pip),并在s3上读取带有所有必要参数的JSon文件存储。

最后,由于没有触及云形成脚本,它为团队之间提供了更大的灵活性,我们分别维护了我们必须安装的软件的价值和版本。

答案 1 :(得分:1)

您可以使用参数创建myscript文件,然后调用run-instances,也可以在命令行上传递参数:

aws ec2 run-instances ... --user-data "#!\naws ec2 describe-instances --instance-id $INSTANCE\n"

以上将shell变量插入到命令中,但这可能会有点混乱。拥有一个创建myscript文件的脚本并将其传递给命令可能会更好。