我正在尝试通过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
答案 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
文件的脚本并将其传递给命令可能会更好。