Powershell从AWS元数据获取区域

Wil*_*oss 5 powershell json amazon-ec2 amazon-web-services

我有一个EC2实例,并且正在那里运行Powershell脚本,我想在其中获取运行EC2的区域。

目前,我有这样的解决方法,它首先抢占了可用区域。可用区的格式类似于“ us-east-1a”。

$region = invoke-restmethod -uri http://169.254.169.254/latest/meta-data/placement/availability-zone 
if ($region -like "*east*") {$region = "us-east-1"} ELSE {$region = "us-west-2"} 
Run Code Online (Sandbox Code Playgroud)

我只想获取区域,而不是获取可用区域,然后进行一些修改。我知道可以使用:

http://169.254.169.254/latest/dynamic/instance-identity/document
Run Code Online (Sandbox Code Playgroud)

这将返回具有该区域的JSON对象,但我还需要解析JSON才能实现此目的。

我如何获得该地区?

hel*_*loV 5

这会起作用吗?

PS C:\> $region = invoke-restmethod -uri http://169.254.169.254/latest/meta-data/placement/availability-zone

PS C:\> $region.Substring(0,$region.Length-1)
Run Code Online (Sandbox Code Playgroud)


Dav*_* DG 5

您可以使用ConvertFrom-Json

PS C:\> $region = (Invoke-WebRequest -UseBasicParsing -Uri http://169.254.169.254/latest/dynamic/instance-identity/document | ConvertFrom-Json | Select region).region
Run Code Online (Sandbox Code Playgroud)

编辑:添加-UseBasicParsing