具有服务总线绑定到AKS的Azure功能

时间:2019-09-26 13:17:59

标签: c# .net azure kubernetes azure-functions

我需要使用新的KEDA事件驱动自动缩放器将Azure函数部署到AKS。函数绑定到服务总线队列,并等待一些消息到来。当我将功能部署脚本应用于K8时,会创建新的部署和缩放对象,但是计划将0个pod进行操作(队列中有一些消息)。

我创建了简单的函数来说明相同的行为。 部署脚本

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 :(得分:0)

开始调试的最佳位置是查看KEDA pod的日志。像kubectl logs -n keda keda-keda-<someGuid>之类的东西应该告诉您所看到的内容(如果有的话)。

在需要重新编程之前,我遇到了一个问题,我需要直接使用队列连接字符串而不是名称空间级别的连接字符串。不确定是否也可以解决您的问题

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