如何在postman中动态请求k8s中的pod ip(基于nacos)

本文方式基于注册中心是nacos.

1. 找到nacos中请求地址

打开nacos管理页面,找到服务管理,打开控制台,随便找到一个服务,找下面这个地址

https://xxxxx.com/nacos/v1/ns/catalog/instances?&serviceName=xxxxx&clusterName=DEFAULT&groupName=dev&pageSize=10&pageNo=1&namespaceId=dev

2. postman中配置 Scripts

在此处配置内容

  1. 注意替换内容 url 的域名替换成自己的。

  2. 在postman中的主请求 {{xxxx}} 需要和 nacos中的服务名称保持一致

  3. env这个变量是配置到postman 环境变量中的。

javascript 复制代码
// 获取当前请求的 URL(解析变量后的实际值)
const currentUrl = pm.request.url.toString();
console.log("当前url: ", currentUrl);

// 提取主机名部分 两个括号中的变量,对应的就是nacos地址中的serviceName
const hostname = currentUrl.match(/\{\{([^}]+)\}\}/)?.[1];


const env = pm.variables.get("env");
console.log("环境: ", env);

if (hostname) {
    // 将提取的值赋给环境变量
    console.log("从URL提取的服务名: ", hostname);
} else {
    console.error("无法从URL提取服务名");
    return
}
// 在Pre-request Script中发送请求并提取IP
pm.sendRequest({
    url: 'https://xxxx.com/nacos/v1/ns/catalog/instances?&serviceName='+ hostname +'&clusterName=DEFAULT&groupName='+ env + '&pageSize=10&pageNo=1&namespaceId=' + env,

    method: 'GET'
}, (err, response) => {
    if (!err) {
        const data = response.json();
        const targetIp = data.list[0].ip; // 直接取第一个元素的ip
        
        // 移除可能的端口号(如果有)
        const cleanIp = targetIp.split(':')[0]; 
        pm.environment.set(hostname, cleanIp);
        
        console.log("更新后的网关IP: ", cleanIp);
    } else {
        console.error("获取网关IP失败: ", err);
    }
});

3. 把Scripts 设置到postman的集合维度。

把上面的Scripts挪到集合目录下就可以实现了

相关推荐
哈里谢顿9 小时前
Kubernetes Operator核心概念、实现原理和实战开发
云原生
阿里云云原生13 小时前
你的 OpenClaw 真的在受控运行吗?
云原生
阿里云云原生14 小时前
5 分钟零代码改造,让 Go 应用自动获得全链路可观测能力
云原生·go
Shanyoufusu1214 小时前
RKE2 单节点集群安装 Rancher+ 私有镜像仓库搭建 完整教程
云原生
阿里云云原生15 小时前
Dify 官方上架 Higress 插件,轻松接入 AI 网关访问模型服务
云原生
AI攻城狮16 小时前
OpenClaw Session 管理完全指南:Context 压缩、重置与持久化
人工智能·云原生·aigc
蝎子莱莱爱打怪2 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
阿里云云原生5 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
蝎子莱莱爱打怪5 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀5 天前
Docker部署Nacos
docker·容器