如何使用nats-pub.py脚本向NATS服务器传递token解决授权报错问题
NATS Token授权配置解决方案
错误原因
你当前使用的--creds参数仅适用于NATS JWT凭据文件认证场景,而你的集群明确配置为auth: token类型认证,参数不匹配导致授权失败。
操作步骤
- 第一步:从K8s Secret中取出有效token
你提供的配置中token存储在K8s名为eventbus-default-client的Secret的client-auth字段中,执行以下命令导出token:
kubectl get secret eventbus-default-client -o jsonpath='{.data.client-auth}' | base64 -d > /tmp/nats-token
- 第二步:调整执行命令完成认证,两种方案二选一即可
方案1:将token嵌入连接URL(兼容性最好)
python /tmp/nats-pub.py -s nats://$(cat /tmp/nats-token)@eventbus-default-stan-svc:4222 {label} -d '{json}'
方案2:直接传递token参数(需你的nats-pub.py脚本支持--token参数)
python /tmp/nats-pub.py --token $(cat /tmp/nats-token) -s nats://eventbus-default-stan-svc:4222 {label} -d '{json}'
注意事项
- 不要将token明文硬编码在命令或脚本中,生产环境建议通过环境变量或加密文件读取token
- 确认执行命令的环境有权限访问
eventbus-default-stan-svc:4222端口,避免网络问题叠加导致认证报错
内容的提问来源于stack exchange,提问作者Eduard Nickel
相关产品推荐
相关产品推荐

