以下のコードをAzure関数で正常に実行し、独自の出力を表示します。ただし、コードは静的ですが、HTTPオンデマンドトリガーを使用してパラメータとして渡すことができるようにするには、URL(トップライン)が必要です。命令型パラメータをAzure関数に渡す
article hereは、実行時に必須バインディングを使用してバインドすることについて話していますが、HTTPベースのパラメータを渡す方法については100%明確ではありません。 https://myfunction.azurewebsites.net/api/AustereoJustPlaying?url=legacy.scahw.com.au/2classicrock_128.xspf、PowerShellコードのパラメーターを使用して作業します。
# Get the initial metadata for the stream
$url = 'http://legacy.scahw.com.au/2classicrock_128.xspf'
$iwr = Invoke-RestMethod -Uri $url
# Build up the .Net web client
$HttpCompletionOption = 'ResponseContentRead'
$webClient = New-Object System.Net.Http.HttpClient
$webclient.DefaultRequestHeaders.Add('Icy-MetaData', '1')
# Get the Stream URL
$null = $iwr.InnerXml -match '<location>(?<location>.*)<\/location>'
$location = $matches.location
# Fire up the stream
$response = $webClient.GetAsync($location,$HttpCompletionOption)
$null = $webclient.DefaultRequestHeaders.Remove('Icy-MetaData')
# Pause until the stream title actually fires up
Start-Sleep -Seconds 2
# Grab the song
$iwr = Invoke-RestMethod -Uri $url
$null = $iwr.InnerXml -match '<title>(?<song>.*)<\/title>'
# Kill the stream
$webclient.Dispose()
# Output the song
$matches.song
サイドノート、お使いのコンピュータ上の下のエラーを取得した場合... ..
新オブジェクト:アセンブリは、これを含むことを確認してください:[System.Net.Http.HttpClient]タイプが見つかりません。タイプがロードされている
このブロックを実行すると、「タイプ」を見つけるためにシステムを「ウォームアップ」する必要があると思われます。検索タイプのhttpClientを数回実行すると、はい、このタイプはインストールされています。
function Find-Type ([regex]$pattern)
{
[System.AppDomain]::CurrentDomain.GetAssemblies().GetTypes() |
Select-Object -ExpandProperty FullName | Select-String $pattern
}
Do {
cls
$TypeSearch = Find-Type httpClient
} until ($TypeSearch -match 'System.Net.Http.HttpClient')
うんのおかげで、私は、ソートの後にとにかくそれを働いた、デフォルトのテンプレート自体は、情報{#POSTメソッドがあります:$ reqを $ requestBody =は、Get-コンテンツ$ REQを - 未処理| ConvertFrom-JSON $名= $ requestBody.name #GET方法:各クエリ文字列パラメータであり、独自の変数 場合($のreq_query_name) { $名= $ req_query_name }アウトファイル -Encodingアスキー-FilePath $ res -inputObject "Hello $ name"} –