试图弄清楚如何从公共Blob存储中读取XML文件。
当我在Powershell脚本中包含XML时,便可以像这样引用它:
[xml]$xml = @"
<?xml version="1.0"?>
<PublicSubnets>
<Subnet>1.2.3.0/24</Subnet>
<Subnet>2.3.4.0/24</Subnet>
<Subnet>192.168.1.0/24</Subnet>
<Subnet>10.0.0.0/8</Subnet>
</PublicSubnets>
"@
foreach ($subnet in $xml.PublicSubnets.Subnet)
{
$subnet
}
这将打印四个子网。
我正在尝试将该XML放入存储在公共Blob存储中的单独XML文档中。 示例:https://teststorage.blob.core.windows.net/automation/Subnet.xml
因此,基本上寻找与脚本中包含的XML相同的功能,但希望将XML托管在外部(我删除了XML的第一行和最后一行-“ [xml] $ xml = @” ”和“” @”
答案 0 :(得分:0)
为blob生成SAS令牌,并获取URI和SAS令牌,并将它们放入变量$ XmlBlobUrl(XML Blob的Uri)和$ SASToken(SAS令牌的查询字符串)中
$XmlBlobUrl = "https://BlobStorageAccount.blob.core.windows.net/subnets.xml"
$SASToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$Url = $XmlBlobUrl + $SASToken
$Subnets = @()
[xml]$xml = Invoke-WebRequest $Url | Select-Object -Expand Content
foreach ($subnet in $xml.PublicSubnets.Subnet) {
$Subnets += $Subnet
}
$Subnets