♠️

Azure Functions で json を HTTP Request で受け取る

2022/05/23に公開

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