Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何筛选';Get-EC2ImageByName';要获取最新的稳定AMI-ID(不是rc)?_Powershell_Amazon Web Services_Amazon Ami_Aws Powershell - Fatal编程技术网

Powershell 如何筛选';Get-EC2ImageByName';要获取最新的稳定AMI-ID(不是rc)?

Powershell 如何筛选';Get-EC2ImageByName';要获取最新的稳定AMI-ID(不是rc)?,powershell,amazon-web-services,amazon-ami,aws-powershell,Powershell,Amazon Web Services,Amazon Ami,Aws Powershell,我已经通过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_6

我已经通过
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,或者仅获取第一个“not rc”AMI ID。 在本例中,我想要的AMI-ID是:

ami-a93484da
有人知道不使用“
-Skip 1
”就可以实现这一点的方法吗? (我避免使用“
-Skip 1
”,因为我试图使脚本可重复,例如,如果有2个或更多的“rc”版本


感谢您的帮助!

假设名称的其他部分均未更改,您可以使用正则表达式对递增的“rc数字”值进行验证。您可以使用此表达式:

".rc-\d+."
此表达式检查字符串“.rc digits.”在字符串中的任何位置,其中的数字可以是一个或多个数字。从那里,您可以对所需的输出进行排序和筛选

下面是一个快速的现场测试,我将执行以下操作:

  • 获取与您提供的名称匹配的图像
  • 通过管道将结果传输到Where对象(别名:?)并使用
    -notmatch
    筛选出结果,在这里我显式查找与表达式不匹配的结果
  • 按最新的AMI CreationDate排序。(这假设较新的版本在以后启动)
  • 选择要输出的ImageId、名称和CreationDate
  • 将整个表达式包装在
    @()
    中以强制输出为集合,然后通过指定
    [0]
    来检索该集合中的第一项
示例:

ImageId Name CreationDate ------- ---- ------------ ami-d4f7ddbe amzn-ami-pv-2015.09.2.x86_64-ebs 2016-02-10T22:21:22.000Z
PS C:/>@(Get-EC2ImageByName-Names“amzn-ami-pv*x86_64*ebs*”)`
其中对象{$\名称-notmatch.rc-\d+。“}|`
排序创建日期-描述|`
选择ImageId、名称、创建日期[0]
输出:

ImageId Name CreationDate ------- ---- ------------ ami-d4f7ddbe amzn-ami-pv-2015.09.2.x86_64-ebs 2016-02-10T22:21:22.000Z ImageId名称CreationDate ------- ---- ------------ ami-d4f7ddbe amzn-ami-pv-2015.09.2.x86_64-ebs 2016-02-10T22:21:22.000Z
只是为了更新,我认为主要的问题是我试图收集以下信息:
amzn-ami-pv-2015.09.2.x86_64-ebs
不是这个:
amzn-ami-pv-2016.03.rc-0.x86_64-ebs