Разрешить CORS-запросы функции Azure, размещенной в Kubernetes - PullRequest
0 голосов
/ 27 февраля 2019

Существует множество справок по настройке CORS при запуске приложения функций Azure в локальной среде разработчика или внутри Azure в Интернете.

Но в настоящее время мы размещаем функции в нашем собственном кластере Kubernetes, и япопытался установить переменную среды 'Host' в '{"CORS": "*"} ", как это выглядит в Azure, но, похоже, это не добавило заголовки CORS.

Isэто потому, что он игнорирует переменную среды, если она не размещена локально или в Azure?В каком случае мне нужно работать в рабочей среде с func, чтобы я мог передать разрешенные параметры источника в приложение командной строки?(MS Dockerfile дает вам использование dotnet с WebHost.dll - и я не уверен, где найти опции для этой команды).

1 Ответ

0 голосов
/ 28 февраля 2019

Я сделал аналогичный ответ для Raspberry Pi в другом SO сообщении , которое применимо и здесь.Вот тот же самый ответ для справки

В основном CORS просто отправляет соответствующие заголовки в вашем ответе.

В Azure об этом позаботится сама платформа, но, поскольку вы будете запускать /обращаясь к среде выполнения функций непосредственно из контейнера, вы можете просто установить их в объекте ответа.

Например, если вы используете NodeJS / JavaScript для своих функций, установите заголовки с помощью context.res

context.res = {
  status: 200,
  headers: {
    'Access-Control-Allow-Credentials': 'true',
    'Access-Control-Allow-Origin': '*', // Or the origins you want to allow requests from
    'Content-Type': 'application/json'
  },
  body: {
    just: 'some data'
  }
};

Кроме того, еще один способ сделать CORS - использовать обратный прокси-сервер, который добавляет заголовки для вас, особенно делает вещи проще, если они одинаковы для всех ваших функций.

...