简体   繁体   中英

Add Name of EC2 in report AWS Backup Powershell

I need to make a report with Powershell-AWS Sdk for AWS Backup.

Actually i have the current report:

Report exemple screenshot

I want to add column on the left with Name Instance TAG for each raw match with VolumeId for more friendly use and read more easly if Instance is backup or not.

Thanks.


# 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.

Update:

I find what I would like by created PSCustomObject: It's working!

Code:

# 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM