You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline(Ubuntu代理)中k6 Redis缓存报未定义错误

k6实验性Redis模块在Azure Pipeline Ubuntu代理池执行时抛出TCP读取错误

问题描述

基于k6/experimental/redis实现Redis缓存,用于在k6脚本的虚拟用户(VU)间共享数据。脚本在本地Windows及WSL环境运行正常,但在Azure Pipeline的Ubuntu代理池中执行时,调用redisClient.set或redisClient.hsetnx会触发未定义错误。

已尝试设置环境变量K6_INSECURE_SKIP_TLS_VERIFY=true,问题未解决。错误出现在第137行首次设置哈希键时,错误信息如下:

{"op":"read","net":"tcp","source":{"ip":[10,116,152,116],"port":64041,"zone":""},"addr":{"ip":[127,0,0,1],"port":6379,"zone":""},"err":{"syscall":"read","err":{}}}

排查与解决方案

  • 确认代理池内Redis服务状态:错误显示尝试连接127.0.0.1:6379,需验证Ubuntu代理虚拟机上Redis服务是否已启动并监听该端口。可在Pipeline步骤中添加redis-cli ping命令,检查服务可达性。
  • 检查Redis配置:
    • 确认Redis未设置未在脚本中配置的访问密码,若有密码需在Redis客户端初始化时传入认证参数。
    • 验证Redis绑定地址配置,确保允许本地连接(默认127.0.0.1绑定通常没问题,但需确认服务未被配置为仅监听特定网卡)。
  • 排查代理池防火墙规则:检查Ubuntu代理的防火墙是否限制了本地TCP连接到6379端口,必要时添加允许规则。
  • 对齐k6及模块版本:本地与Azure代理池的k6版本、k6/experimental/redis模块版本可能存在差异,导致兼容性问题。可在Pipeline中指定与本地一致的k6版本,通过k6 version确认版本后安装对应版本。
  • 检查脚本连接配置:若本地使用无TLS的Redis实例,需确认脚本未在Pipeline环境中错误启用TLS连接配置——即使设置了K6_INSECURE_SKIP_TLS_VERIFY=true,非TLS连接场景下的TLS配置仍会导致连接异常。

内容的提问来源于stack exchange,提问作者Egeon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 19:35:56