Trigger Azure Функция создания бета MS Graph Teams от Power Automate - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть функция Azure, которая создает новую команду для команд на основе переменных запроса. Когда я заворачиваю или вызываю функцию Restvoet из командной строки, она выполняется и создает команду. Когда я запускаю функцию из потока Power Automate, функция завершается ошибкой.

Сообщение об ошибке, которое я получаю при запуске из потока, указывает на то, что вызов бета-API MS Graph Teams вызывает проблему в соответствии с этим :

Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: Functions.NewTeam
 ---> Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcException: Result: Failure
Exception: System.Management.Automation.CmdletInvocationException: {
  "error": {
    "code": "NotFound",
    "message": "Failed to execute Templates backend request CreateTeamFromTemplateRequest. Request Url: https://teams.microsoft.com/fabric/templates/api/team, Request Method: POST, Response Status Code: NotFound, Response Headers: Strict-Transport-Security: max-age=2592000\r\nx-operationid: 14c6acc3601661469f152ac3d1d46b8a\r\nx-telemetryid: |14c6acc3601661469f152ac3d1d46b8a.7a1c5868_1.\r\nX-MSEdge-Ref: Ref A: 6259AF5FA1174BBCA9C2A70A448D15F4 Ref B: DB3EDGE1222 Ref C: 2020-04-01T05:38:26Z\r\nDate: Wed, 01 Apr 2020 05:38:26 GMT\r\n, ErrorMessage : {\"errors\":[{\"message\":\"Failed to execute request for MiddleTier CreateTeamS2SAsync. Status code: NotFound.\"}],\"operationId\":\"14c6acc3601661469f152ac3d1d46b8a\"}",
    "innerError": {
      "request-id": "37cb7b1c-ae0f-4191-8878-5a6d91578dd8",
      "date": "2020-04-01T05:38:26"
    }
  }
}

Мне нужно сгенерировать токен перед вызовом создания команды, и он прекрасно выполняется.

Я установил CORS, чтобы разрешить междоменный вызов. Другие звонки из FLOW работают как положено. Это только последняя строка в этом коде, и только при вызове из Flow:

            $params = @{
                Header        = Get-AzureMSGraphHeader @credential #calls the Graph endpoint and generates a token
                Method        = 'Post'
                Uri           = 'https://graph.microsoft.com/beta/teams'
            }
            $params.Body = @{
                displayName           = $TeamName
                description           = $TeamName
                "template@odata.bind" = "https://graph.microsoft.com/beta/teamsTemplates('standard')"
                'owners@odata.bind'   = $Owners
                visibility            = 'Private'
            } | convertto-json
            Write-Information "Executing command"
            Invoke-AzureMSGraph @params #calls the graph endpoint with the body and header above

Invoke-AzureMSGraph - это оболочка для Invoke-RestMethod. Он устанавливает ContentType в значение 'application / json'

. Любые указатели на то, где искать решение, будут высоко оценены.

1 Ответ

0 голосов
/ 04 апреля 2020

Проблема исчезла, когда точно такой же код был развернут во вновь созданной функции Azure (в другом регионе). Весь код одинаков.

В подобных ситуациях удобны развертываемые шаблоны.

...