我正在尝试在自动调节环境中创建2 ebs卷,我将启动2个实例。
目前,如果没有"可用"此用户数据ps脚本能够检查并进入else循环。体积。但它只创建了2个卷而不是4个因为(每个实例2个)。我需要睡觉吗? 2 ebs卷如何附加到通过自动缩放启动的2个独立实例?
$instanceId = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id;
$available = Get-EC2Volume -Filter @{ Name="status"; Values="available" }
if($available) {
Get-EC2Volume -Filter @{ Name="status"; Values="available" } >> c:\cfn\scripts\volumeinfo.txt;
$vid = Get-Content "c:\cfn\scripts\volumeinfo.txt" | select-string volumeId | Foreach-Object { $_.ToString().split(':')[1] -replace '\s','' }
Add-Content -Path c:\cfn\scripts\info.txt -Value $vid
[Byte] $c = [Char] 'd';
foreach ($volumeid in $vid) {
Add-Content -Path c:\cfn\scripts\info.txt -Value $volumeid
$instanceId = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id
Add-EC2Volume -InstanceId $instanceId -VolumeId $volumeid -Device "/dev/sd$([Char] $c++)" }
Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False
} else {
echo "Else Loop" >> c:\cfn\scripts\info.txt;
$instanceId = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id
$rgn = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/placement/availability-zone
$v = New-EC2Volume -AvailabilityZone $rgn -Size 50 -VolumeType gp2
Add-EC2Volume -Device /dev/sdb -InstanceId $instanceId -VolumeId $v.VolumeId
Add-Content -Path c:\cfn\scripts\info.txt -Value $v.VolumeId
$v = New-EC2Volume -AvailabilityZone $rgn -Size 50 -VolumeType gp2
Add-EC2Volume -Device /dev/sdc -InstanceId $instanceId -VolumeId $v.VolumeId
Add-Content -Path c:\cfn\scripts\info.txt -Value $v.VolumeId
Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False
答案 0 :(得分:0)
可以添加Get-EC2Volume
并等待状态变为available
,然后将其附加到EC2实例。 http://docs.aws.amazon.com/powershell/latest/reference/Index.html