♠️
Azure Functions で json を HTTP Request で受け取る
Azure Functions の PowerShell でサンプルの HttpTrigger1 をベースに 複数オブジェクトの json を受け取るサンプルを作ります。
受け取りたい json
処理したい json はこんな感じ。 name の各部分で ForEach します。
[
{
"name": "Azure1"
},
{
"name": "Azure2"
}
]
サンプルからの修正ポイント
$input に Request の Body を格納します。そして ForEach-Object で json 内の各オブジェクトで処理を繰り返します。
$input = $Request.Body
$body =""
$input | ForEach-Object {
$name = $input.name
if ($name) {
$body += "Hello,$name. This HTTP triggered function executed successfully.`n"
}
}
コード全文
全文はこんな感じです。
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Output "PowerShell HTTP trigger function processed a request."
# Interact with the body of the request.
$input = $Request.Body
$body =""
$input | ForEach-Object {
$name = $input.name
if ($name) {
$body += "Hello,$name. This HTTP triggered function executed successfully.`n"
}
}
# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
})
テスト
入力
出力
Discussion