Ant*_*ace 4 powershell amazon-ec2 amazon-web-services aws-powershell
我正在尝试从返回的对象中检索instanceid,公共DNS名称和"Name"标记get-ec2instance.
$instances = foreach($i in (get-ec2instance)) '
{ $i.RunningInstance | Select-Object InstanceId, PublicDnsName, Tag }
Run Code Online (Sandbox Code Playgroud)
这是输出:
InstanceId PublicDnsName Tag
---------- ------------- ---
myInstanceIdHere myPublicDnsName {Name}
... ... {Name}
Run Code Online (Sandbox Code Playgroud)
我希望能够{Name}使用上面的代码行访问并在此输出中打印其值.自最初发布以来,我做了一些研究,发现......
PS C:\Users\aneace\Documents> $instances[0].Tag.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True List`1 System.Object
Run Code Online (Sandbox Code Playgroud)
在这个和AWS文档之间,我认为Tag引用了这个列表,但我不确定.我可以访问一个通过调用打印键和值列的表$instances[0].Tag,但我现在的问题是我希望它Value是我的第一个表而不是{Name}对象的输出.有什么建议?
每文档,该Tag属性是一个列表的Tag对象.因此,通常,存储多个键/值.你假设你的情况只有1吗?
Select-Object您不仅可以获取原始属性值,还可以获取计算值.比方说,你只是想在一个逗号分隔的列表Value从S Tag列表中的对象.这是你如何做到的:
$instances = Get-EC2Instance `
|%{ $_.RunningInstance } `
| Select-Object InstanceId,PublicDnsName,@{Name='TagValues'; Expression={($_.Tag |%{ $_.Value }) -join ','}}
Run Code Online (Sandbox Code Playgroud)
现在,元素$instances将具有一个属性TagValues,该属性是由Value与实例关联的所有标记组成的字符串.
| 归档时间: |
|
| 查看次数: |
8526 次 |
| 最近记录: |