【Azure APIM】自建网关(self-host gateway)收集请求的Header和Body内容到日志中的办法

news/2025/10/12 17:00:50/文章来源:https://www.cnblogs.com/lulight/p/19136831

问题描述

使用 Azure API Management(APIM)时,需要记录每个 API 请求的 HeaderBody,以便进行问题排查和审计,如何配置才能完整捕获这些信息呢?

 

问题解答

在配置API的时候,启用 trace  策略来收集 inbound / outbound中分别收集请求的Header/Body信息。

具体操作步骤如下:

第一步:进入API的Policy编辑页面,分别修改Inbound和Outbound策略

在Inbound 加入 如下部分内容, 分别获取Request 的Headers 和 Body信息,作为Trace的Message内容

    • context.Request.Body.As<string>(preserveContent: true):用于读取请求体内容,并保留原始内容供后续处理。
    • context.Request.Headers.Select(...):用于拼接所有请求头信息。

<inbound>

        <base />

        <trace source="request-info" severity="information">

            <message>@{              

            var headerOutput = string.Join("\n", context?.Request?.Headers?.Select(h => $"{h.Key}: {string.Join(";", h.Value)}"));

            var body = context?.Request?.Body?.As<string>(preserveContent: true) ?? "No Body";

            return $"\n\nRequest Headers:\n{headerOutput}\n\nRequest Body:\n{body}\n\n";

        }</message>

        </trace>

    </inbound>

在Outbound 加入 如下部分内容, 分别获取Response 的Headers 和 Body信息,作为Trace的Message内容

    • context.Response.Body.As<string>(preserveContent: true):用于读取响应体内容,并保留原始内容供后续处理。
    • context.Response.Headers.Select(...):用于拼接所有响应的头信息。

    <outbound>

        <base />

        <trace source="response-info" severity="information">

            <message>@{              

            var headerOutput = string.Join("\n", context?.Response?.Headers?.Select(h => $"{h.Key}: {string.Join(";", h.Value)}"));

            var body = context?.Response?.Body?.As<string>(preserveContent: true) ?? "No Body";

            return $"\n\nResponse Headers:\n{headerOutput}\n\nResponse Body:\n{body}\n\n";

        }</message>

        </trace>

    </outbound>

 

第二步:以AKS部署部署自建网关为例,查看日志输出效果

image

 

【end】

参考资料

将 Azure API 管理自承载网关部署到 Azure Kubernetes 服务 : https://docs.azure.cn/zh-cn/api-management/how-to-deploy-self-hosted-gateway-azure-kubernetes-service

 Trace : https://docs.azure.cn/zh-cn/api-management/trace-policy

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[JAVA]JDK多版本设置

[JAVA]JDK多版本设置windows环境背景: 经常会遇到不同项目,需要不同版本的jdk版本,每次都需要手工修改环境变量 我这里遇到需要分别使用jdk1.8和jdk17解决: 通过bat设置好版本,通过脚本实现反复快速修改。 @echo …

Google Veo3生成跳舞视频

Google Veo3生成跳舞视频背景 Google Veo 3 是谷歌 DeepMind 于 2025 年 5 月推出的第三代 AI 视频生成模型,在视听同步、画质表现、创作控制等方面实现了显著突破, 视听协同生成 原生音频同步技术:支持文本或图…

【PolarCTF】stackof

1,pwntools 2,ida pro1. 首先下载文件,得到一个没有后缀名的stack_of文件。拿到ubuntu分别用file和checksec查看。2. 我们可以看到这是一个64位ELF文件,动态链接,符号表未被剥离,看上去没什么保护。 3. 接着拿到…

我们离“科幻”还有多远?Yoshua Bengio_From System 1 Deep Learning to System 2 Deep Learning_NeurIPS 2019 感想

我们离“科幻”还有多远?Yoshua Bengio_From System 1 Deep Learning to System 2 Deep Learning_NeurIPS 2019 感想不用我说大伙也知道,近几年来,AI发展极为迅速,对我们的生活和发展产生了巨大的影响;我自己很深…

C# console get current screen DPI from user32.dll and gdi32.dll

using System.Runtime.InteropServices;namespace ConsoleApp24 {internal class Program{ [DllImport("user32.dll")]static extern bool SetProcessDPIAware();[DllImport("user32.dll")]static…

冬天快乐

济南的秋雨,往往摆出一副生人勿近的冷淡模样,默默撑起一片云当做遮阳伞、或者吞吐着光线,叫人难以分辨雨丝的形态;有时甚至连一点声音的余地也不留下,只有叫你伸出手并深吸一口温柔的秋香,才算是通过了她共舞的申…

新生赛 F,H,J 题解

F. 金苹果 搜索题。 首先在输入中记录点 \(S,P,T\) 的坐标。 第一问,搜索要求不经过点 \(P\),可以将 px,py 记录成 #,然后从 \(S\) 开始搜(dfs 或 bfs 均可)能不能到达 \(T\)。 第二问,从 \(S\) 出发能否先经过 …

pycharm跑python项目易出错的困难

pycharm跑python项目易出错的困难pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

双端队列的0-1BFS

问题: B. Labyrinth 代码: #include<bits/stdc++.h> using namespace std; #define int long long #define ll long long #define fi first #define se second #define vi vector<int> #define vll vecto…

Python psycopg2 类库使用学习总结

实践环境 openGauss 6.0.0 TLS企业版 python3 .9.13 psycopg2 2.9.10 实践操作 # -*- coding:utf-8 -*-import psycopg2if __name__ == __main__: # 连接方式1# connection_str = host=192.168.88.139 port=15400 d…

[GenAI] RAG架构演进

RAG架构演进 RAG 的概念和思想最早是在 2020 年由 Meta 公司的技术团队在文章 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” 中正式提出的,用于给当时已经开始出现的大型预训练语言模型提供…

多后端服务器架构解析 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

24NOIP游记——彼时彼刻

NOIP2024游记: day-2:仅是因为本人在看到不少人AFO的帖子有感而发马上就要奔赴考场了,这两天也看到了不少朋友或陌生人AFO的帖子。此时此刻,恰如彼时彼刻,我想明年的今天,我应该也会加入这些写AFO祭的一员。 开始…

PWN手的成长之路-15-jarvisoj_level2_x64

file:checksec:查看 main 函数:main 函数调用了 vulnerable_fuction() 函数,并且存在 system() 函数,尝试查找是否存在 /bin/sh 字符串。 shift + F12 发现存在 /bin/sh 字符串。查看vulnerable_fuction() 函数:…

2025.10.12——1绿

普及+/提高 P8818 [CSP-S 2022] 策略游戏 线段树+贪心,但是这个贪心刚开始没写出来卡95,看题解重写贪心AC。

价值博弈场的工程实现:构建数字文明的价值免疫系统——声明Ai生成

价值博弈场的工程实现:构建数字文明的价值免疫系统——声明Ai生成 ——技术圈外人 在人工智能技术飞速发展的今天,我们正面临着一个根本性的挑战:如何让AI系统不仅能够执行任务,更能理解和协调人类复杂的价值体系。…

基于 Rust 的英文数字验证码识别系统设计与实现

一、引言 验证码(Completely Automated Public Turing test to tell Computers and Humans Apart, CAPTCHA)是区分人类与自动程序的重要技术手段。 随着 OCR 与深度学习的普及,传统验证码逐渐面临被机器识别的风险。…

2025年两联供室内机厂家最新权威推荐榜:技术实力与市场口碑

2025年两联供室内机厂家最新权威推荐榜:技术实力与市场口碑随着建筑节能标准的不断提升和人们对室内环境舒适度要求的日益增长,两联供系统在暖通空调领域的应用越来越广泛。作为两联供系统的核心组成部分,室内机的性…

2025武汉商铺装修防水厂家最新权威推荐榜:专业施工与品质保

2025武汉商铺装修防水厂家最新权威推荐榜:专业施工与品质保在商铺装修领域,防水工程作为确保建筑安全和使用寿命的关键环节,其重要性不言而喻。随着城市化进程加速和商业空间需求增长,防水行业在2025年迎来了新的技…

2025铝合金微弧氧化厂家权威推荐榜:表面处理技术实力深度解

2025铝合金微弧氧化厂家权威推荐榜:表面处理技术实力深度解行业背景与发展现状铝合金微弧氧化技术作为表面处理领域的重要工艺,近年来在航空航天、汽车制造、电子设备等行业得到广泛应用。这项技术通过在铝合金表面产…