我已成功通过Get-EC2ImageByName
收集AMI ID,但我正在尝试确定一种方法来提取最新的" not-rc" AMI。
我目前正在运行:
Get-EC2ImageByName -Names *amzn-ami-pv*x86_64*ebs* - | Select-Object -ExpandProperty "ImageId" -First 1
它给了我:
ami-978639e4
当我跑步时:
Get-EC2ImageByName -Names *amzn-ami-pv*x86_64*ebs*
前两个条目是:
Architecture : x86_64
BlockDeviceMappings : {/dev/sda1}
CreationDate : 2016-02-27T22:30:03.000Z
Description : Amazon Linux AMI 2016.03.rc-0 x86_64 PV EBS
Hypervisor : xen
ImageId : ami-978639e4
ImageLocation : amazon/amzn-ami-pv-2016.03.rc-0.x86_64-ebs
ImageOwnerAlias : amazon
ImageType : machine
KernelId : aki-52a34525
Name : amzn-ami-pv-2016.03.rc-0.x86_64-ebs
OwnerId : 137112412989
Platform :
ProductCodes : {}
Public : True
RamdiskId :
RootDeviceName : /dev/sda1
RootDeviceType : ebs
SriovNetSupport :
State : available
StateReason :
Tags : {}
VirtualizationType : paravirtual
Architecture : x86_64
BlockDeviceMappings : {/dev/sda1}
CreationDate : 2016-02-10T22:22:22.000Z
Description : Amazon Linux AMI 2015.09.2 x86_64 PV EBS
Hypervisor : xen
ImageId : ami-a93484da
ImageLocation : amazon/amzn-ami-pv-2015.09.2.x86_64-ebs
ImageOwnerAlias : amazon
ImageType : machine
KernelId : aki-52a34525
Name : amzn-ami-pv-2015.09.2.x86_64-ebs
OwnerId : 137112412989
Platform :
ProductCodes : {}
Public : True
RamdiskId :
RootDeviceName : /dev/sda1
RootDeviceType : ebs
SriovNetSupport :
State : available
StateReason :
Tags : {}
VirtualizationType : paravirtual
我试图忽略" rc"输入,并在没有" rc"的情况下拿起第一个AMI ID。在名称中,或者只是第一个"不是rc" AMI ID。 在此示例中,我想要的AMI-ID是:
ami-a93484da
有没有人知道如何在不使用" -Skip 1
"的情况下实现这一目标?
(我正在避免使用" -Skip 1
"因为我试图使脚本可重复,例如,如果有2个或更多" rc"版本。
感谢您的帮助!
答案 0 :(得分:2)
假设名称的其他部分都没有变化,您可以使用正则表达式来对抗递增的“rc- 数字”值。您可以使用以下表达式:
".rc-\d+."
此表达式检查字符串“.rc- digits ”。字符串中的任何位置, digits 可以是一个或多个数字。从那里,您可以对所需的输出进行排序和过滤。
下面是一个快速的实时测试,我在其中执行以下操作:
-notmatch
过滤掉结果,其中我明确地查找与我的表达式不匹配的结果。@()
中以强制输出为集合,然后通过指定[0]
来检索该集合中的第一个项目。示例:强>
PS C:/> @(Get-EC2ImageByName -Names "amzn-ami-pv*x86_64*ebs*" | `
Where-Object { $_.Name -notmatch ".rc-\d+." } | `
Sort CreationDate -Desc | `
Select ImageId, Name, CreationDate)[0]
<强>输出:强>
ImageId Name CreationDate ------- ---- ------------ ami-d4f7ddbe amzn-ami-pv-2015.09.2.x86_64-ebs 2016-02-10T22:21:22.000Z