Powershell 无法将JSON流数据摄取到Azure事件中心

Powershell 无法将JSON流数据摄取到Azure事件中心,powershell,rest,azure-eventhub,Powershell,Rest,Azure Eventhub,我想将从API端点获得的JSON结果发布到Azure Event Hub$default consumer组,但我收到以下错误: Invoke-RestMethod : The remote server returned an error: (401) Unauthorized. At H:\Users\User1 - scripts\get_mel_streetparking_data.ps1:34 char:1 + Invoke-RestMethod -Uri $URI -Method $

我想将从API端点获得的JSON结果发布到Azure Event Hub$default consumer组,但我收到以下错误:

Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.
At H:\Users\User1 - scripts\get_mel_streetparking_data.ps1:34 char:1
+ Invoke-RestMethod -Uri $URI -Method $method -Headers $headers -Body $res ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-    RestMethod], WebException
    + FullyQualifiedErrorId :     WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
我编写了下面的powershell脚本,其中以下get代码运行良好:

$url = "https://data.melbourne.vic.gov.au/resource/vh2v-4nfs"
$apptoken = "abcdasdadaaf"

# Set header to accept JSON
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Accept","application/json")
$headers.Add("X-App-Token",$apptoken)

$results = Invoke-RestMethod -Uri $url -Method get -Headers $headers
但以下代码失败,出现上述给定错误:

$method = "POST"
$URI = "https://[servicebusNamespace].servicebus.windows.net/[eventHubPath]/messages"
$signature = "SharedAccessSignature sr=[servicebusNamespace].servicebus.windows.net%2feventhub-    streetparking&sig=%3dgZfDHEGN8lVEGgqu4N64TW70BLuSKARSKgMPeRByc%5d&se=604985&skn=RootManageSharedAccessKe"

# API headers
$headers = @{
        "Authorization"=$signature;
        "Content-Type"="application/json";
        }


# create Request Body
#$body = "$results"

# execute the Azure REST API
Invoke-RestMethod -Uri $URI -Method $method -Headers $headers -Body $results
我通过以下代码生成了SAS令牌:

[Reflection.Assembly]::LoadWithPartialName("System.Web")| out-null    
$URI="[servicebusNamespace].servicebus.windows.net/[eventHubPath]"
$Access_Policy_Name="RootManageSharedAccessKey"
$Access_Policy_Key="Root key value"
#Token expires now+3000
$Expires=([DateTimeOffset]::Now.ToUnixTimeSeconds())+3000
$SignatureString=[System.Web.HttpUtility]::UrlEncode($URI)+ "`n" + [string]$Expires
$HMAC = New-Object System.Security.Cryptography.HMACSHA256
$HMAC.key = [Text.Encoding]::ASCII.GetBytes($Access_Policy_Key)
$Signature = $HMAC.ComputeHash([Text.Encoding]::ASCII.GetBytes($SignatureString))
$Signature = [Convert]::ToBase64String($Signature)
$SASToken = "SharedAccessSignature sr=" + [System.Web.HttpUtility]::UrlEncode($URI) + "&sig=" +     [System.Web.HttpUtility]::UrlEncode($Signature) + "&se=" + $Expires + "&skn=" + $Access_Policy_Name
$SASToken

请帮助我为什么会看到未经授权的错误

在生成SAS令牌之前没有替换以下值是我的错

$Access\u Policy\u Name=“RootManageSharedAccessKey”
$Access\u Policy\u Key=“Root Key value”

您是否实际使用默认的访问策略
RootManageSharedAccessKey