Как передать "x-ms-client-Principal" в статическом хостинге веб-сайтов Azure (предварительная версия) при локальном запуске?
Я пробую новую предварительную версию Azure Static Website Hosting Preview, и при локальном запуске функции Azure не получают заголовок "x-ms-client-Principle" в объекте привязки req.
Мой файл маршрутов выглядит так:
{
"routes": [
{
"route": "/api/*",
"allowedRoles": ["administrator"]
},
{
"route": "/*",
"serve": "/index.html",
"statusCode": 200
}
]
}
Моя функция API попадает в: /api/message
, но не включает заголовок.
module.exports = async function (context, req) {
const header = req.headers["x-ms-client-principal"]; // req.headers doesn't include x-ms-client-principle
const encoded = Buffer.from(header, "base64");
const decoded = encoded.toString("ascii");
}
Статическое приложение - это статическая страница React, созданная с помощью create-react-app. У меня есть строка для вывода результата из приложения-реакции:
fetch(`${process.env.REACT_APP_API}/message?name=me`)
.then(a => a.text())
.then(console.log);
Локально process.env.REACT_APP_API
устанавливается через REACT_APP_API=http://127.0.0.1:7071/api
.
API получает популярность, но я не уверен, что он работает с правильной версией Функций Azure. Он сообщает:Function Runtime Version: 2.0.12961.0
хотя я установил azure-functions-core-tools@3 и установил правильное значение ("azureFunctions.projectRuntime": "~3"
) в settings.json
.
Мой вопрос: я что-то упускаю, и если да, то что?
2 ответа
На данный момент кажется, что этот сценарий не поддерживается:
Для тех, кто наткнется на этот 2022 год, есть интерфейс командной строки и не забудьте правильно настроить API . Хотя это не тривиально для настройки, он работает.