在报告AWS Backup Powershell

问题描述

我需要使用Powershell-AWS Sdk for AWS Backup进行报告。

实际上我有最新报告:

Report exemple screenshot

我想在每个带有VolumeId的原始匹配项的左侧添加带有Name Instance TAG的列,以便更友好地使用,并且无论是否备份Instance,阅读起来都更加容易。

谢谢。


# AWS Credentials
Set-AWSCredential -ProfileName XXXX
Set-DefaultAWSRegion -Region XXXXX

$date = (get-date -Format "MM-dd-yyyy" (Get-Date).AddDays(-1)) #Last day


$Body = @"
<style>
      body {
      background-color: #CAD2D3;
      }
    </style>
    <h1><img src="https://i.ibb.co/cvHLWfN/transparent-aws-logo.png" alt="transparent-aws-logo" width="189" height="69" border="0" />&nbsp; &nbsp;<span style="color: #000000;"><strong>AWS BACKUP STATUS</strong></span></h1>
    <p>The following report was run on $(get-date).</p>
"@


$Header = @"
<style>
TABLE {border-width: 2px; border-style: solid; border-color: black; border-collapse: collapse;}
TH {border-width: 2px; padding: 3px; border-style: solid; border-color: black; background-color: #6495ED;}
TD {border-width: 2px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@

Get-BAKBackupJobList -ByCreatedAfter $date | Select-Object -Property @{Label = 'VolumeId'; Expression = { $_.ResourceArn.substring($_.ResourceArn.length - 21) } },@{Label = 'BackupSizeInGB'; Expression = { [int]($_.BackupSizeInBytes / 1GB) } },BackupJobId,CreationDate,CompletionDate,State |
ConvertTo-Html -Head $Header -Body $Body | ForEach-Object {
    $PSItem -replace "<td>COMPLETED</td>","<td style='background-color:#7CFC00'>COMPLETED</td>" } | out-file "E:\Report\AWSBackup\Report_AWSBackup-$date.html"

BastosAWS。

解决方法

更新:

通过创建PSCustomObject可以找到所需的内容: 正在工作!

代码:

# AWS Credentials
Set-AWSCredential -ProfileName XXXX
Set-DefaultAWSRegion -Region XXXXX

$date = (get-date -Format "MM-dd-yyyy" (Get-Date).AddDays(-1)) #Last day


$Body = @"
<style>
      body {
      background-color: #CAD2D3;
      }
    </style>
    <h1><img src="https://i.ibb.co/cvHLWfN/transparent-aws-logo.png" alt="transparent-aws-logo" width="189" height="69" border="0" />&nbsp; &nbsp;<span style="color: #000000;"><strong>AWS BACKUP STATUS</strong></span></h1>
    <p>The following report was run on $(get-date).</p>
"@


$Header = @"
<style>
TABLE {border-width: 2px; border-style: solid; border-color: black; border-collapse: collapse;}
TH {border-width: 2px; padding: 3px; border-style: solid; border-color: black; background-color: #6495ED;}
TD {border-width: 2px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@

$var = Get-BAKBackupJobList -ByBackupVaultName daily-ec2-ami | Select-Object -Property @{Label = 'InstanceId'; Expression = { $_.ResourceArn.substring($_.ResourceArn.length - 19) } },@{Label = 'BackupSizeInGB'; Expression = { [int]($_.BackupSizeInBytes / 1GB) } },BackupJobId,CreationDate,CompletionDate,State
$vmobjects = @()
foreach ($row in $var)
{
    $ec2id = $row.InstanceId
    $object = [PSCustomObject][Ordered] @{
        Name = Get-EC2Tag | ? { $_.ResourceID -eq "$ec2id"} | ? { $_.key -eq "Name" } | select -expand Value
        Application = Get-EC2Tag | ? { $_.ResourceID -eq "$ec2id"} | ? { $_.key -eq "Application" } | select -expand Value
        InstanceId = $row.InstanceId
        BackupSizeInGB = $row.BackupSizeInGB
        CreationDate = $row.CreationDate
        CompletionDate = $row.CreationDate
        State = $row.State

    }
    $vmobjects += $object
}

$vmobjects | ConvertTo-Html -Head $Header -Body $Body | ForEach-Object {
    $PSItem -replace "<td>COMPLETED</td>","<td style='background-color:#7CFC00'>COMPLETED</td>" } | out-file "E:\Report\AWSBackup\Report_AWSBackup-$date.html