我正在尝试使用 azure 存储队列设置 KEDA 以进行实验。我想将存储帐户的连接字符串用于身份验证,但 KEDA 操作员无法解析连接字符串。ScaledObject 已创建,其状态为“就绪”,但无法获取有关队列长度的信息或根本无法与队列交谈。我创建了一个不透明的秘密,并使用文档中描述的authenticationRef部分引用它。
我在日志中看到的错误是:
ERROR azure_queue_scaler error) {"error": "can't parse storage connection string. Missing key or name"}
我仔细阅读了文档并查看了 KEDA 源代码,但我仍然感到困惑。
这是我的秘密定义:
kind: Secret
metadata:
name: azure-st-conn-string-secret
type: Opaque
data:
connectionString: MY_BASE_64_ENCODED_CONNECTION_STRING
还有我的 TriggerAuth 和 ScaledObjects:
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
name: azure-queue-auth
spec:
secretTargetRef:
- parameter: connection
name: azure-st-conn-string-secret
key: connectionString
---
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: azure-queue-scaledobject
spec:
scaleTargetRef:
name: my-deployment-target
triggers:
- type: azure-queue
metadata:
queueLength: '5'
queueName: my-queue-name
authenticationRef:
name: azure-queue-auth
通过 KEDA 源代码,如果连接字符串的格式不正确,则会引发此错误。但是,我验证了在集群中创建的秘密完全符合源代码的预期,即:
DefaultEndpointsProtocol=https;AccountName=THE_ACCOUNT_NAME;AccountKey=THE_ACCOUNT_KEY;EndpointSuffix=core.windows.net
我究竟做错了什么?