Как включить секреты функций Azure при развертывании в Kubernetes?

Я создал функцию .NET Core Azure с помощью ServiceBusTrigger. Функция отлично работает при развертывании в обычном плане службы приложений после соответствующих настроек приложения, таких как строка подключения к служебной шине.

Однако я бы предпочел разместить функцию как контейнер Docker в службе Azure Kubernetes (AKS). У меня есть настройка AKS и несколько контейнеров Docker .NET Core, в том числе некоторые функции Azure для TimerTrigger.

Когда я развертываю функцию с помощью ServiceBusTrigger, она не настраивается должным образом, и я получаю сообщение «Узел функции не запущен». когда я посещаю IP-адрес функций. Я считаю, что это потому, что не удается найти настройки приложения.

Проблема в том, что я не знаю, как включить их при размещении в среде Docker / Kubernetes. Я попытался включить соответствующие записи ENV в файл Docker, но затем я не могу найти соответствующие значения в YAML развертывания, просматриваемом через панель управления Kubernetes после успешного запуска func deploy из PowerShell.

Большая часть документации Microsoft касается случаев TimerTrigger и HttpTrigger, но я мало что могу найти в ServiceBusTrigger при использовании Docker / Kubernetes.

Итак, как мне включить соответствующие настройки приложения в мое развертывание?


person ProfNimrod    schedule 28.04.2019    source источник


Ответы (1)


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

В deploy.yml добавьте env (например, AzureWebJobsStorage в качестве переменной среды).

containers:
    - image: tsuyoshiushio/queuefunction-azurefunc
      imagePullPolicy: Always
      name: queuefunction-deployment
      env:
        - name: AzureWebJobsStorage
          value: YOUR_STORAGE_ACCOUNT_CONNECTION_STRING_HERE
      ports:
        - containerPort: 80
      protocol: TCP

Затем примените его, он будет работать.

person George Chen    schedule 29.04.2019