Я новичок в функциях Azure, так что это может быть что-то очевидное.

Вот что это такое:

У меня есть функция запуска HTTP-триггера Powershell Azure Functions с Pode, которая имеет маршрут GET и POST. Теперь, когда я отправляю запрос POST через Postman, Invoke-WebRequest или любой другой инструмент, кроме Azure Test Tool, я попадаю на маршрут GET.

Моя отладка показала, что в этих случаях $TriggerMetadata содержит "Method": "GET" ". «Метод»: «POST» »только в том случае, если запрос исходит от самого средства тестирования Azure.

Передо мной загадка. Я надеюсь, что кто-то может мне помочь.

Мой код:

param($Request, $TriggerMetadata)
$endpoint = '/api/Object'

Write-Host "$endpoint - PowerShell HTTP trigger function processed a request."

Start-PodeServer -Request $TriggerMetadata -ServerlessType AzureFunctions {
    
    # get route that can return data
    Add-PodeRoute -Method Get -Path $endpoint -ScriptBlock {
        Write-Host "$endpoint - Get"
        
        #doing stuff
    }

    # post route to create some data
    Add-PodeRoute -Method Post -Path $endpoint -ScriptBlock {
         Write-Host "$endpoint - Post"

        #doing stuff
    }
}

Моя функция .json:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "methods": [
        "get",
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    }
  ]
}
3
Dave 18 Май 2021 в 16:05

1 ответ

Лучший ответ

Мне очень жаль, тем более, что это очень неудовлетворительно, но проблема больше не существует.

Я сильно подозреваю, что это была ошибка в Azure, так как я ничего не менял и все снова работает.

Думаю, пора проверить SLA по функциям Azure.

1
Dave 18 Май 2021 в 14:24