如何在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挪到集合目录下就可以实现了

相关推荐
运维-大白同学6 小时前
2025最全面开源devops运维平台功能介绍
linux·运维·kubernetes·开源·运维开发·devops
努力进修9 小时前
跨设备文件共享零烦恼!PicoShare+cpolar让跨设备传输更简单
云原生·eureka·cpolar
tianyuanwo10 小时前
多平台容器化RPM构建流水线全指南:Fedora、CentOS与Anolis OS
linux·运维·容器·centos·rpm
敲上瘾13 小时前
【探索实战】:Kurator分布式统一应用分发平台的全面解析与实践指南
分布式·容器·kubernetes·serverless
cui_win13 小时前
Docker Compose 部署一个完整的Prometheus监控告警系统
docker·容器·prometheus
roman_日积跬步-终至千里1 天前
【Docker】Docker Stop 后到底发生了什么?——从信号机制到优雅停机
运维·docker·容器
喵手1 天前
云端智变:基于 DevUI 与 MateChat 打造下一代云原生智能运维中台实战教学!
运维·云原生·devui·matechat
z***6261 天前
Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像
docker·容器·tomcat
Connie14511 天前
记一次K8s故障告警排查(Grafna告警排查)
云原生·容器·kubernetes·grafana
❀͜͡傀儡师1 天前
Docker部署视频下载器
docker·容器·音视频