从Automation PowerShell中的Azure Blob存储读取XML

时间:2018-10-24 16:18:15

标签: azure powershell

试图弄清楚如何从公共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 = @” ”和“” @”

1 个答案:

答案 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