AWS CLI实例ID在变量中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS CLI实例ID在变量中相关的知识,希望对你有一定的参考价值。

嗨,有人可以帮助这个

我在bash脚本中使用Amazon AWS CLI命令,并具有以下行和它提供的输出。

 aws ec2 describe-instances --instance-ids $Ins --query 'Reservations[*].Instances[*].[Tags[?Key==`Name`].Value]' --output text

    ' does not existd (InvalidInstanceID.NotFound) when calling the DescribeInstances operation: 

The instance ID 'i-0c7bf4181bdfxxxxx Will be backed up

如果我回显$ ins的值并在命令中硬编码就像

$ echo $Ins
i-0c7bf4181bdfxxxxx

$ aws ec2 describe-instances --instance-ids i-0c7bf4181bdfxxxxx --query 'Reservations[*].Instances[*].[Tags[?Key==`Name`].Value]' --output text
lon-prod-xxxx-xxxx

我不明白为什么它在复制和粘贴时在命令中有效,但在用作变量时却不行?

附加代码,确定有更简洁的方法来做到这一点,但只是需要快速。只需从单个VPC中获取所有实例ID,然后尝试依次获取每个实例ID。

Instances=$(aws ec2  describe-instances --filter "Name=vpc-id,Values=$VPCID" --query 'Reservations[*].Instances[*].[InstanceId]' --output text)

for Ins in $Instances; do
echo $Ins
name=$(aws ec2 describe-instances --instance-ids $Ins --query 'Reservations[*].Instances[*].[Tags[?Key==`Name`].Value]' --output text)
echo $name Will be backed up
echo $Ins
aws ec2 create-image --instance-id $Ins --name "$name" --description "Auto backed up on $(date)" --no-reboot --$dryrun
echo "***"
done
enter code here

错误是在下面,第一个ID是我回应$ Ins所以它似乎知道ID,但我认为它后面有一个/ r / n

     i-0c7bf4181bdfxxxxx

    ' does not existd (InvalidInstanceID.NotFound) when calling the DescribeInstances operation: 
The instance ID 'i-0c7bf4181bdfxxxxx Will be backed up
答案

好的我修好了,变量后面有一个新行“/ r”

添加了这一行

Ins = $ {Ins / $' r'/}将其剥离并立即正常工作。

以上是关于AWS CLI实例ID在变量中的主要内容,如果未能解决你的问题,请参考以下文章

AWS CLI EMR 获取主节点实例 ID 并标记它

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

Java中代码的执行顺序

使用 AWS CLI 删除 OpsWorks EC2 实例

boto3或aws cli是否具有从实例创建模板?

AWS 以编程方式为其他人部署实例(AWS CLI OAuth?)