Проблема CORS с функциями Azure внутри кластера AKS
У меня есть кластер AKS в Azure, в котором запущен мой проект функций Azure. Я получил его, следуя этому руководству.
https://markheath.net/post/azure-functions-aks-keda
Служба работает, однако любые запросы с моего сайта завершаются с ошибкой CORS. Если вы заметили в руководстве
CORS
опция установлена на
*
в файле local.settings.json.
Я заметил, что лазурные функции, похоже, не читают
local.settings.json
или же
settings.json
файлы при запуске внутри контейнера.
Я не уверен, почему, но чтобы запустить его локально, мне пришлось установить строки подключения как переменные среды.
Похоже, что
func kubernetetes deploy --dry-run > deploy.yml
делает то же самое, поскольку yaml выглядит примерно так:
data:
AzureWebJobsStorage: ConnectionStringHere
AzureSignalRConnectionString: ConnectionStringHere
AzureBlobStorage: ConnectionStringHere
FUNCTIONS_WORKER_RUNTIME: ZG90bmV0
FUNCTIONS_V2_COMPATIBILITY_MODE: dHJ1ZQ==
apiVersion: v1
kind: Secret
metadata:
name: my-app-live
namespace: default
---
apiVersion: v1
Обратите внимание, здесь нет ссылки на
CORS
там вообще, даже против
LoadBalancer
.
Я провел небольшое исследование, и похоже, что другие меняют балансировщик нагрузки на
nginx
как обратный прокси, чтобы справиться с этим. Я не уверен, что это вариант для меня или какие будут последствия, если это использование
DurableFunctions
и
KEDA
для масштабирования, и я не хочу делать ничего, что могло бы нарушить эту функциональность.
Приложение FunctionApp написано на C#.
Я новичок в Kubernetes, поэтому, пожалуйста, расскажите как можно подробнее, если можете помочь.