Функция Azure с привязкой сервисной шины к AKS - PullRequest
0 голосов
/ 26 сентября 2019

Мне нужно развернуть свою функцию Azure на AKS с помощью нового автоматического масштабирования, управляемого событиями KEDA.Функция привязывается к очереди служебной шины и ожидает поступления некоторых сообщений.Когда я применяю сценарий развертывания функции к K8s, создается новое развертывание и масштабированный объект, но для выполнения действия запланировано 0 модулей (в очереди есть несколько сообщений).

Я создал простую функцию, чтобы проиллюстрировать то же самоеповедение.Сценарий развертывания

data:
  AzureWebJobsStorage: <value>
  FUNCTIONS_WORKER_RUNTIME: ZG90bmV0
  ServiceBusConnection: <value>
apiVersion: v1
kind: Secret
metadata:
  name: myqueuefunction
  namespace: default
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myqueuefunction
  namespace: default
  labels:
    app: myqueuefunction
spec:
  selector:
    matchLabels:
      app: myqueuefunction
  template:
    metadata:
      labels:
        app: myqueuefunction
    spec:
      containers:
      - name: myqueuefunction
        image: <container>
        env:
        - name: AzureFunctionsJobHost__functions__0
          value: MyQueueFunction
        envFrom:
        - secretRef:
            name: myqueuefunction
---
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata:
  name: myqueuefunction
  namespace: default
  labels:
    deploymentName: myqueuefunction
spec:
  scaleTargetRef:
    deploymentName: myqueuefunction
  triggers:
  - type: azure-servicebus
    metadata:
      type: serviceBusTrigger
      connection: ServiceBusConnection
      queueName: importedqueue
      name: myQueueItem
---

Код функции:

[FunctionName("MyQueueFunction")]
public static void Run(
    [ServiceBusTrigger("importedqueue", Connection = "ServiceBusConnection")]
    Message myQueueItem, 
    ILogger log)
{
    log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}

K8S

Обзор K8s overview

Информация о развертывании K8s deployment

Реплика информации K8s replica

Автоскалер информации K8s autoscaler

Может любойподскажите как его отладить хотя бы?Или что я делаю не так?

1 Ответ

0 голосов
/ 28 сентября 2019

Лучшее место для начала отладки - просмотр логов модуля KEDA.Что-то вроде kubectl logs -n keda keda-keda-<someGuid>, которое должно сообщать вам, что он видит, если что-нибудь.

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

https://github.com/kedacore/keda/issues/215

...