- 博客(108)
- 收藏
- 关注
原创 【Azure Redis】TCP_USER_TIMEOUT 不生效时,Java 长连接为何要几分钟才恢复?
在Linux环境下,基于Netty的Java应用使用Lettuce连接Redis时,若未正确引入netty-transport-native-epoll,即使配置了TCP_USER_TIMEOUT,该参数也无法生效。导致短暂网络异常后,连接因重传机制延迟失效,应用无法及时感知,造成数分钟级的恢复延迟。需确认依赖匹配、启用EpollTransport、验证Socket选项设置,并结合strace、ss等工具排查。命令超时与TCP超时非同一概念,应分别配置。避免误调tcp_retries2,确保重连策略合理。
2026-11-07 17:52:49
211
原创 【Azure Container Apps】为什么通过 Diagnostic Settings 发送到 Log Analytics 中的日志会延迟几分钟?
特别需要区分的是,Microsoft Learn 中提到普通 Azure Monitor 日志摄取的平均延迟小于 10 秒,但这是 Azure Monitor ingestion 本身的指标,并不能直接理解为所有 Azure Resource Logs 从源服务产生到 Log Analytics 可查询只需要 10 秒。在 Azure Container Apps 中,需要将容器应用产生的日志集中发送到 Log Analytics Workspace,以便后续进行日志查询、监控和故障排查。
2026-11-02 18:35:00
376
原创 【Azure APIM】使用 Terraform 为现有 APIM 配置自动缩放
在Terraform中配置Azure API Management(APIM)自动缩放,需通过azurerm_monitor_autoscale_setting资源实现,而非直接在azurerm_api_management中设置。需指定目标APIM的资源ID、缩放规则(如CPU或内存阈值)、冷却时间及步长,并确保Provider中配置environment="china"以适配中国区Azure。部署前检查是否已存在缩放设置,避免冲突。完整模板包含动态规则与条件校验,支持Basic/St
2026-10-28 18:16:58
238
原创 【Azure App Service】PHP2Shell 远程代码执行漏洞(CVE-2026-109618 / CVE-2026-109619)在App Service的影响
因为爆出PHP2Shell 远程代码执行漏洞(CVE-2026-109618 和 CVE-2026-109619),目前已知PHP 8.5 及以下版本均受影响。那么在Azure App Service上部署的PHP项目受影响的情况如何呢?PHP内存耗尽处理缺陷:longjmp 提前退出时可能留下未初始化的请求内存。未认证攻击者可通过可控 OOM 触发内存破坏并远程执行代码,危及数据机密性、完整性和服务可用性。
2026-10-27 19:21:59
304
原创 【Azure Storage Account】Azure Queue指标中的Transactions 高,真实业务处理的消息就多吗?
图中Transaction计费指标显示,GetMessageRead达1.11亿次,远高于PutMessage、DeleteMessage等操作,表明存在大量空轮询(即队列为空时持续轮询)。真实业务消息相关操作为PutMessage(入队)、GetMessageWrite(取到消息)和DeleteMessage(删除),而GetMessageRead属于管理层面的空轮询,不反映有效业务量。其他如PeekMessages、ListQueues等为监控或管理操作。需优化轮询策略,避免无效请求导致成本浪费。
2026-10-20 19:34:40
134
1
原创 【Azure App Service】分享App Service for Window中自动抓取Memory DUMP的方法
当Azure App Service应用内存突增时,可启用Auto-Heal功能自动捕获Memory Dump。在Azure Portal中,进入WebApp的Troubleshoot → Auto-Heal,设置触发条件为“MemoryLimit”(如私有内存阈值),动作选择“Collect a Memory Dump”,并绑定存储账户保存Dump文件。建议设置最短运行时间5–10分钟,避免频繁触发。规则生效后,系统将在内存超限时自动抓取Dump,便于后续分析根源。此为临时应急手段,需结合代码优化排查根本
2026-10-15 21:37:14
210
原创 【Azure Logic App】Workflow中使用 SMTP 发送邮件成功,但打开附件时报错文件已损坏
在Azure Logic Apps Standard中,SMTP发送邮件附件时出现文件损坏问题,经排查发现是contentData字段中误包含额外的{}符号,导致附件内容被错误解析。正确配置应为"contentData": "@body('Get_blob_content')",移除多余符号后问题解决。关键在于确保附件数据源格式纯净,避免语法污染。
2026-10-14 21:00:45
233
原创 【App Service】把旧应用的备份还原到新应用上时候遇见了报错:A TXT record pointing from xxx.com.cn to xxxxx was not found.
在将Azure App Service备份还原至新应用时,因原配置的自定义域名缺少对应TXT验证记录,导致还原失败。错误源于平台尝试绑定域名但无法验证所有权。解决方法:若需保留原域名,应先修正DNS中的TXT记录并等待生效;若暂不使用,可手动修改备份文件中的XML与ZIP内的meta信息,移除自定义域名相关配置(如HostNames、EnabledHostNames、HostNameSslStates等),重新打包上传后还原。注意:此操作非官方推荐,可能影响后续还原,建议先在测试环境验证,并注意覆盖风险。
2026-10-10 19:29:49
159
原创 【App Service】为应用服务添加Key Vault证书时遇见的RBAC问题之两个困扰人的坑
为实现AppService通过RBAC安全访问KeyVault证书,需解决两大权限坑:1)门户无法加载证书,因缺少KeyVaultCertificateUser权限;2)添加证书时报无权限,因Microsoft.Azure.WebSites缺失KeyVaultSecretsUser权限。关键在于开启诊断日志,通过AzureDiagnostics | where ResultSignature == "Forbidden" | distinct ResultDescription定位具体应
2026-10-09 18:40:19
197
原创 【Azure Logic App】Logic App 的 Workflow 在执行中遇见了 ActionResponseTimedOut 问题
某LogicAppWorkflow突然变慢并返回HTTP 504,经查因长期空闲导致AppService Host被回收,新请求触发冷启动,初始化耗时过长超过超时阈值。冷启动是Azure平台为节省资源而设计的机制,但会带来延迟。解决方法:开启LogicApp的AlwaysOn功能,保持Host常驻,避免冷启动。通过配置“AlwaysOn=On”可显著降低响应延迟,提升稳定性。
2026-10-01 14:18:44
293
原创 【App Service 】WebJobs 多实例实验:谁在运行,什么时候运行?
Azure App Service 扩展至3个实例后,WebJob是否运行3份取决于类型:持续型(MultiInstance)在每个实例运行,产生3份;而手动或定时触发的WebJob仅由一个实例执行,不会重复。实验验证了这一点,通过记录实例ID与时间可明确判断执行位置。平台不保证触发实例固定轮询,下一次执行可能切换实例。
2026-09-30 19:47:02
324
原创 【Azure Service Fabric 】节点扩展状态为 Not Ready 的恢复办法
Azure Service Fabric 节点卡在“Node configuration in progress”状态时,可能因配置失败或运行时异常导致无法启动。本例中,通过远程桌面停止相关服务(如FabricHostSvc、BootstrapAgent等),将 C:\Program Files\Microsoft ServiceFabric\bin 目录重命名为 bin_moved,保留原始文件用于排查,随后重启 FabricInstallerSvc 服务并重启虚拟机,成功触发自动修复机制,使节点重新完成
2026-09-22 21:04:46
185
原创 【Azure Service Fabric】BlockNewImpactfulTenantUpdateJobs 命令有什么作用?
Invoke-ServiceFabricInfrastructureCommand -Command "UpdateJobBlockingPolicy:BlockNewImpactfulTenantUpdateJobs" 用于临时阻止新的高影响性平台更新(如OS补丁、租户更新),但不影响已运行的作业。适用于集群升级、健康异常或关键业务期,防止更新风暴。注意:仅为暂停,非取消;解除后积压任务将集中执行,需制定解除计划,避免长期阻塞导致安全风险与SLA违规。
2026-09-22 21:01:24
162
原创 【Azure Developer】如何使用 Microsoft Graph Explorer?为什么说它是一个非常便利的 Microsoft Graph API 调试工具?
Microsoft Graph Explorer 是微软官方提供的在线API调试工具,支持全球版(https://graph.microsoft.com)与中国的21Vianet版(https://microsoftgraph.chinacloudapi.cn)。它无需开发环境,可在浏览器中直接调用Graph API,实时查看响应结果,快速验证接口、调试权限(如401/403错误),并自动生成C#、PowerShell等代码示例。支持所有HTTP方法,适用于API原型验证、故障排查与学习。
2026-09-15 20:17:22
204
原创 【Azure Redis】Redis 指标 ClockSkewSeconds 解读:含义、读数与时钟偏差的影响
<think>我们根据要求生成不超过150字的摘要。内容关于ClockSkewSeconds概念、解读、与Redis时间关系及性能指标区别。需简洁概括。</think>ClockSkewSeconds反映节点时钟与参考时间的偏差,关注时间一致性而非性能。读数需明确计算口径:正值领先、负值落后,绝对值仅示差距。Redis依赖稳定系统时间处理Key过期、锁与日志;固定偏差影响有限,但跳变、绝对期限或迁移更敏感。它与CPU、延迟等指标无关。
2026-09-08 20:22:41
243
原创 【Azure Function】NodeJS Function大批量写入到Redis遇见丢失数据情况的分析
Azure Functions 中批量写 Redis 时,看到 Invocation 已完成,不代表每个 Redis SET 都完成了。如果代码用 callback 调用 client.set(),随后立即执行 client.quit() 或直接返回,Function Runtime 可能认为本次执行已经结束,但 Redis 写入还在事件循环里排队。我的建议很明确:所有外部依赖调用都必须 await,批量写入要么顺序等待,要么用受控并发等待全部 Promise 完成。
2026-09-07 20:24:13
405
原创 【Azure Fabric Service】Service Fabric 节点 Error:数据盘挂载失败与 CHKDSK 修复
<think>我们只需要生成≤150字的文章摘要,基于用户提供的服务问题解答内容。摘要应提炼核心问题、原因、解决步骤。注意简洁。</think>D盘挂载异常导致Service Fabric节点配置失败,报错“D:\SvcFab不可用”。核心是先解决磁盘问题,而非应用配置。建议执行chkdsk D: /f /r修复文件系统,需管理员权限、预留维护窗口。检查完成后验证D盘及目录可访问即可。
2026-09-03 19:46:15
211
原创 【Azure Redis】中国区创建和连接 Azure Managed Redis 的两个注意事项
<think>我们根据要求生成一个≤150字的文章摘要。内容是关于Azure Managed Redis的介绍,包括其特点、在中国区创建的注意事项和RedisInsight连接配置。摘要要简洁。</think>Azure Managed Redis是微软新一代全托管服务,基于Redis Enterprise,提供高性能缓存、实时数据与AI/LLM数据层能力,支持向量搜索、语义缓存等场景。
2026-08-31 20:08:46
254
原创 【Azure Developer】通过 API 获取 Azure VM 信息实践指南 Part 2(Azure China)
获取订阅下全部 VM 信息获取公网/私网 IP获取操作系统及镜像版本获取实时运行状态获取 CPU 与内存配置判断 VM 是否已删除查询删除审计日志整个方案基于 Service Principal + Reader 权限实现,满足企业级“只读、安全、可控”的自动化资源管理需求,可直接应用于 CMDB、资产盘点平台、运维监控平台以及云资源治理场景。
2026-08-27 19:55:44
418
原创 【Azure Developer】通过 API 获取 Azure VM 信息实践指南 Part 1(Azure China)
基于 Azure China (21Vianet) 环境,实现对订阅下云服务器(Virtual Machine)的统一资产管理能力。将包含获取如何获取认证Token, VM列表,VM公网/私网IP以及VM操作系统信息。
2026-08-24 20:43:45
261
原创 【Azure Key Vault】资源组被误删后,如何恢复 Azure Key Vault?
删除资源组后,里面的 Key Vault 通常不会立即消失,而是进入软删除状态。只要仍在保留期内,先确认订阅、保管库名称和原始区域,再创建原资源组名称,最后使用门户、Azure CLI 或 PowerShell 恢复保管库。恢复对象本身并不等于恢复所有外围配置,访问控制、网络规则、专用终结点和依赖应用仍然需要逐项验证。
2026-08-19 19:47:48
601
原创 【Azure APIM】在 Azure API Management 中配置 SSE Transport 的 MCP Server:从 App Service 到 APIM 的一次实践
本文记录了在Azure中国区部署MCPSSE服务并通过APIM网关透传的实践过程。作者首先验证了后端服务的MCP调用功能,随后尝试通过REST API将SSE传输类型的MCP服务接入APIM网关,期间遇到API版本不兼容(改用2024-10-01-preview版本)和SSE协议支持问题。虽然成功创建了MCP API配置(包含SSE和message端点),但最终测试连接失败,表明中国区APIM对SSE协议的支持仍存在限制。文章详细说明了配置流程,并附有.NET实现的MCPSSE服务demo代码,为类似场景提
2026-08-18 20:23:14
223
原创 【Azure Developer】Terraform Plan 长时间等待问题排查:Azure China 环境下 AzureRM Provider 自动注册Resource Provider导致卡顿
文章摘要:在使用Terraform部署Azure Container Apps Job时,执行terraform plan命令出现长时间无响应。通过开启日志发现是AzureRM Provider在初始化时自动检查/注册多个无关Azure资源提供程序(如Microsoft.DevTestLab等)导致的延迟。该问题在Azure中国区尤为明显,因为部分提供程序不可用。解决方案是在azurerm provider配置中添加resource_provider_registrations="none&quo
2026-08-12 23:04:28
326
原创 【Azure APIM】在VS Code中使用MCP Inspector 插件来调试MCP Server URL (三)
本文介绍了如何使用VSCode插件MCPInspector测试部署在Azure API Management中的MCPServer服务。主要内容包括:安装MCPInspector插件后,通过配置连接参数(如Streamable HTTP传输类型、API MCP server URL等)建立连接;验证服务时,可获取Tool列表并测试基础调用功能,但需注意该工具主要用于验证服务连通性,不能完全替代真实大模型集成测试。文章提供了详细的操作步骤,帮助开发者在无大模型环境下快速确认MCPServer的可用性。
2026-08-10 21:22:06
252
原创 【Azure APIM】通过 API Management 公开API为 MCP Server 的试验 (二)
本文介绍了如何将Azure API Management (APIM) 中的现有API转换为MCP服务器。操作步骤包括:在APIM实例中创建MCP服务器,选择目标API(如Echo API),配置名称和描述,并可选地将其加入产品供客户端访问。创建完成后,需复制MCPServer URL用于后续配置。在VSCode中通过命令或直接编辑配置文件添加MCP服务器时,可能会遇到连接错误,这与已知Bug有关。解决方案包括调整诊断日志记录设置或仅选择特定API接口进行测试。文章还演示了如何在GitHub Copilot
2026-08-04 22:06:19
308
原创 【Azure APIM】通过 API Management 公开现有 MCP Server 的试验 (一)
本文介绍了如何通过Azure API Management (APIM) 公开现有的MCP服务器,以统一管理AI客户端的内部工具访问。操作步骤包括:登录Azure门户,在APIM实例中创建MCP服务器,填写后端地址(如https://learn.microsoft.com/api/mcp)和基础路径,并可选地加入产品以启用订阅密钥验证。随后在VS Code中配置MCP服务器URL和订阅密钥,即可通过GitHub Copilot调用MCP工具。
2026-08-03 20:30:59
274
原创 【Azure Policy】Policy修正任务为Azure资源添加诊断日志报错问题的调查
在企业的Azure环境治理中,为了满足审计与合规的要求,通常会使用 Azure Policy 来统一管理各类资源的诊断日志配置。具体做法是:在 Policy 定义中通过或效果,检查 Azure 资源(如公网 IP、网络安全组等)是否已经配置了诊断日志(Diagnostic Settings)。如果没有配置,则由修正任务(Remediation Task)自动触发一个内嵌的 ARM 模板,为对应资源添加诊断日志设置。
2026-07-22 18:37:17
207
原创 【Azure APIM】APIM的诊断日志与Application Insights的日志是否可以串联为一个端到端的日志链路呢?
摘要 在Azure API Management(APIM)中,可通过CorrelationId关联日志数据构建端到端调用链路。具体步骤: 关联操作ID:通过Kusto查询将AzureDiagnostics.CorrelationId映射到Application Insights的operation_Id; 追踪完整链路:基于operation_Id跨服务(requests/dependencies等表)查询调用链; 跨实例处理:若涉及多Application Insights实例,需在查询中联合多个数据源
2026-07-20 21:33:43
277
原创 【Azure Application Insights】公网白名单应用如何使用 Application Insights 可用性测试?
摘要: Azure VM部署的应用配置了IP白名单后,Application Insights可用性测试因探测请求IP未在白名单内而失败。解决方法是获取探测服务的IP地址段并加入白名单。需通过Azure官方JSON文件(含中国云IP范围)手动提取ActionGroup和ApplicationInsightsAvailability的CIDR,动态更新规则(因IP会变化),而AzureMonitor可直接引用服务标签。关键文档包括可用性测试配置和防火墙规则指南,强调云环境需持续同步变更。
2026-07-15 21:17:58
268
原创 【Azure AI】Work smarter in 90 days: A real-world guide to using AI / 90 天内更⾼效地⼯作:⼀本关于使⽤ AI 的实⽤指南 [转]
摘要: 《如何在AI时代提升职业竞争力?90天实战指南》指出,掌握AI工具已成为职业发展的关键。LinkedIn高管在新书中提出分阶段计划:1-30天建立基础,将任务分为AI独立完成、人机协作和人类专属三类,优化时间分配;31-60天培养不可替代的人类技能(如创造力、共情力),将重复工作交给AI;61-90天整合资源,规划职业路径,通过AI辅助决策。书中强调,技术迭代中,人类独有的视角与软技能才是核心竞争力,建议通过团队协作和小步试错逐步建立AI使用信心。
2026-07-14 21:10:25
164
原创 【Azure Container Apps】Readiness Probe 配置了 15 秒,为什么日志里仍显示 1 秒超时?
摘要: 排查ContainerApp副本异常时发现ReadinessProbe超时(日志显示1秒),但配置中TimeoutSeconds=15秒。经分析,此为Consumption模式的限制:TimeoutSeconds不可大于PeriodSeconds,否则配置不生效(GitHub Issue #1580提及)。解决方案需满足TimeoutSeconds ≤ PeriodSeconds,建议将两者设为相同值(如11秒)。此现象体现了云环境参数约束的隐蔽性,需遵循“静中细察,动态调整”的运维思路。
2026-07-10 20:51:16
150
原创 【Azure Container App】Key Vault的Secret修改导致Container App重启,是否有办法规避呢?
摘要:ContainerApp的ReplicaCount变化通常由重启引起。诊断日志显示RevisionRestartWithNewSecrets事件表明KeyVault的Secret更新触发了重启。若通过环境变量引用Secret的最新版本(无指定版本URI),应用会在30分钟内自动更新并重启。为避免自动重启,建议在URI中指定Secret版本(如https://myvault.vault.azure.cn/secrets/mysecret/ec96...1931),需更新时再手动调整版本号即可控制重启时机
2026-07-08 21:43:29
263
原创 【Azure Key Vault】在 Logic App 中调用 Key Vault 的 Key 进行加密/解密操作时权限报错问题
摘要: Azure Logic App 调用 Key Vault 加密/解密时出现权限错误(403),即使已为 Logic App 标识赋予 Key Vault 访问策略的完整权限。问题根源在于具体 Key 的独立权限配置:每个 Key 可单独设置允许的操作(如 Encrypt/Decrypt),若未启用对应操作,即使 Vault 层面有权限仍会报错。解决方案需在目标 Key 的“Permitted operations”中勾选所需功能。 注意:证书自动生成的 Key 默认不支持加密/解密,需重新上传证书创
2026-07-07 20:06:11
202
原创 【Azure App Service】解析 Azure App Service 中的 X-Ms-Forbidden-Ip 响应头
摘要 Azure App Service 在因IP访问限制返回403响应时,会在响应头中添加X-Ms-Forbidden-Ip字段。该字段可帮助判断403响应来源:若存在则更可能来自平台访问限制,而非应用代码或中间层。虽然该行为未在公开文档中明确说明,但在受控环境下可作为有效诊断依据。建议结合访问限制配置、诊断日志和应用日志综合判断。在安全敏感场景中,该字段应作为辅助信号而非唯一依据,最稳妥的方式是与其他日志数据关联分析。
2026-07-02 21:53:45
284
原创 【Azure Storage Account】跨存储账号复制 Blob 会产生大量网络流量费用吗?
本文解答了在Azure Storage账户间复制大文件时的流量费用问题。关键点在于区分两种复制方式:应用下载再上传会产生网络流量费用,而服务器端复制(使用Copy Blob、Put Blob From URL等API)则不会经过应用网络,主要产生存储事务费用。文章详细说明了不同场景下的费用结构、.NET中的API选择(如StartCopyFromUriAsync),并针对常见报错403 CannotVerifyCopySource提供了排查步骤,强调源账号网络规则配置的重要性。最终建议优先使用服务器端复制来
2026-07-02 21:48:19
276
原创 【Azure Function App】升级 Python 运行时 3.9 到3.10 后遇见的问题
摘要 Azure Function从Python 3.9升级到3.10时出现两个主要问题:1)仅修改运行时版本不重新构建依赖导致Worker加载超时(System.TimeoutException,exitcode 137),原因是旧版原生依赖不兼容;2)typing_extensions版本与Python 3.13运行时冲突(AttributeError),因typing.ParamSpec行为不兼容。解决方案包括:使用目标Python版本环境全新安装依赖(pip install -r requireme
2026-06-26 21:20:13
267
原创 【Azure Function App】本地调试PowerShell Function时需要注意两类错误:加载失败和认证失败
F5func start这两个错误的根本原因都不是代码问题,而是本地环境配置不到位,或者本地环境压根无法模拟云端的 Managed Identity 机制。
2026-06-22 21:02:05
439
原创 【Azure AI Search】 stopword 是什么,为什么它会影响搜索结果?
本文解释了Azure AI Search中搜索"inbrief"时结果过多的现象。关键原因是默认的standard.lucene分析器不会过滤"in"等英文停用词,导致大量无关文档被匹配。通过AnalyzeText API对比显示:standard.lucene会保留"in"和"brief"两个token,而en.microsoft分析器会移除停用词"in"。这导致使用不同分析器时搜索结果数量差异明显
2026-06-16 20:57:26
366
原创 【Azure AI Search】Index的字段使用默认Analyzer(standard.lucene) 和 en.microsoft 有什么不同?
Azure AI Search英文检索出现词形匹配问题(如brief/briefs无法互查),核心在于analyzer的选择:standard.lucene仅做基础分词,不处理词形变化;en.microsoft支持词干/词形还原(briefs→brief)。解决方案包括:1)确认业务需求选择analyzer;2)通过新增字段(配置en.microsoft)+索引器重建实现平滑迁移。操作步骤含字段映射、索引更新及结果验证,需注意修改索引需重建数据。相关技术文档已附微软官方链接。
2026-06-15 21:04:29
532
原创 【Azure AI Search】 searchMode=any 和 searchMode=all 有什么区别?
searchMode=any 和 searchMode=all 不是相关性排序参数,而是决定多个搜索词如何组合的匹配模式。any 偏召回,结果通常更多all 偏精确,结果通常更少遇到结果数量差异时,先不要直接怀疑索引数据异常,应该先确认当前查询到底是在做 OR 式匹配,还是 AND 式匹配。
2026-06-10 19:59:04
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅