Amazon-Web-Services
使用 PowerShell 循環狀態結果
我在 PowerShell 中編寫了一個創建 aws ebs 快照的腳本,它工作正常,沒有問題,除了我無法定期獲取進度狀態以繼續腳本中的下一步。除非我沒有更新該快照 100% 完成,否則我無法繼續我的腳本中的下一步,即升級應用程序。任何幫助表示讚賞。
Import-Module -name AWSPowerShell $CostIdValue = Read-Host "Please provide ID , e.g.:- 111" $CostId = Get-EC2Volume -profilename xyz -region us-east-2 | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "CostId" -and $_.Tags.Value -eq $CostIdValue} | Select-Object -ExpandProperty VolumeId $snapshot = New-EC2Snapshot -profilename xyz -region us-east-2 -VolumeId $CostId #$snapshotId = Get-EC2Volume -profilename xyz -region us-east-2 | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "CostId" -and $_.Tags.Value -eq $CostIdValue} | Select-Object -ExpandProperty SnapshotId $a = $snapshot.SnapshotId #Write-Output $a New-EC2Tag -profilename xyz -region us-east-2 -Resource $a -Tag @{ Key="CostId"; Value = $CostIdValue } $i = Get-EC2Snapshot -profilename xyz -region us-east-2 | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "CostId" -and $_.Tags.Value -eq "$CostIdValue"} | Select-Object -ExpandProperty State for ($i = 1; $i -le 100; $i++ ) { Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i; }
所以我使用了while並檢查了連續間隔的狀態。現在腳本正在根據狀態及其狀態檢查快照。按預期完美工作。謝謝大家的加入。。
while ((Get-EC2Snapshot -profilename xyz -region $region | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "CostId" -and $_.Tags.Value -eq "$CostIdValue"}).Status -ne "completed") { "Snapshot for db is $CostIdValue pending ..." Start-Sleep -Seconds 5 } "Snapshot for db is $CostIdValue completed ..."