2017-10-09 10 views
0

以下のコードを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') 

答えて

1

デフォルトのPowerShell HTTP Triggerテンプレートにその例が示されています。 $req_query_url

次の関数は、ちょうど戻っての簡単な例である:URLパラメータ上のあなたの例では使用してアクセスできるようになりよう

クエリ文字列パラメータは、形式req_query_<parametername>で変数としてスクリプトに利用可能になります新しい関数を作成するときにそのためのパラメータ

Out-File -Encoding Ascii -FilePath $res -inputObject "URL parameter $req_query_url" 
+0

うんのおかげで、私は、ソートの後にとにかくそれを働いた、デフォルトのテンプレート自体は、情報{#POSTメソッドがあります:$ reqを $ requestBody =は、Get-コンテンツ$ REQを - 未処理| ConvertFrom-JSON $名= $ requestBody.name #GET方法:各クエリ文字列パラメータであり、独自の変数 場合($のreq_query_name) { $名= $ req_query_name }アウトファイル -Encodingアスキー-FilePath $ res -inputObject "Hello $ name"} –

関連する問題