我需要使用新的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
至少有人建议如何调试它吗?还是我做错了什么?
答案 0 :(得分:0)
开始调试的最佳位置是查看KEDA pod的日志。像kubectl logs -n keda keda-keda-<someGuid>
之类的东西应该告诉您所看到的内容(如果有的话)。
在需要重新编程之前,我遇到了一个问题,我需要直接使用队列连接字符串而不是名称空间级别的连接字符串。不确定是否也可以解决您的问题