云计算
公司的自动警报系统上运行了很多不同的服务,EC2,VPC S3等等,他们属于20多个不同的诊所。之前的管理员并没有进行很好的标签,因此每个月底的账单都只能看见一大堆总的开支,具体到每个服务,每个诊所很难确定具体的开支,结果就是所有的开支都从信息技术部门的预算走的,而不是分摊到实际的各个诊所上去。
为了解决这个问题,可以对每个服务都进行自定义的标签标签,然后在成本分配标签的控制台里激活自定义的标签,一天之后,就可以在演员表账单里面根据自己定义的标签来过滤查询了。
比如说,为了区分诊所,我定义了一个标签、钥匙是诊所,价值就是每个诊所的名字了
因为我有上百个卷和上千个快照,豆子写了个简单的PowerShell脚本来添加标签100 .EC2实例上手动添加了对应的标签,然后根据EC2关联的卷添加标签,再通过卷来关联快照添加标签
写-主机检查EC2实例标记状态-前景颜色黄色
$ all=Get-ec2 instance | select-扩展实例
$ return=$ all | Where-Object { $ _。标签。关键-不包含诊所}
if($return -ne $null){
$用户名=example@aa.com
$ password=password | convert to-secure string-as plaint ext-Force
$credential=新对象系统管理。自动化。PS凭证($用户名,$密码)
发送邮件消息-从示例@aa.com-到example @ bb . com-SMTP server SMTP . office 365 . com-端口587-使用SSL-主题EC2实例标记-凭据$credential
出口
}
#确认EC2实例已标记
$result=@()
foreach($item in $all){
$ Name=$ item。tag | Where-Object { $ _ .key-eq \ \ \ ' Name \ \ \ ' } |选择-展开属性值
$ clinic=$ item。tag | Where-Object { $ _ .key-eq \ \ \ ' clinic \ \ \ ' } |选择-展开属性值
$ item |添加成员注释属性名描述-NotePropertyValue $name
$ item | add-member-note property name Clinic-note property value $ Clinic
$item=$item | select *
$result=$item
}
$result |选择描述,实例Id,私有地址,诊所|组-对象诊所
写主机更新卷标签状态.-前景颜色黄色
#根据附加的EC2诊所标签标记所有卷
$ all vol=Get-ec2 volume | Where-Object { $ _。标签。关键-不包含诊所}
foreach($item in $result){
foreach($所有卷中的第2项){
如果($第2项。附件。实例id-eq $ item .InstanceId){
$value=$item .诊所
New-EC2Tag -Resource $item2 .VolumeId-Tag @ { Key=Clinic;值=$value}
}
}
}
写主机完成!-前景颜色黄色
写主机更新快照标记状态.-前景颜色黄色
#根据卷标记标记所有快照
$allvol=Get-EC2Volume
$filter=新对象亚马逊.EC2。模型。filter-Property @ { Name=owner-id;Values=\\\ '