问题描述

根据APIM官方文档,创建Self-hosted 网关在AKS中( 使用 YAML 将自承载网关部署到 Kubernetes :https://docs.azure.cn/zh-cn/api-management/how-to-deploy-self-hosted-gateway-kubernetes),但是访问AKS中Services的Endpoint,得到的确实 404页面。

{
"statusCode": 404,
"message": "Resource not found"
}

访问截图:

查看AKS POD的日志,也是显示404 错误

PS C:\> kubectl get pods
NAME READY STATUS RESTARTS AGE
lbapimselftest01-77f5b8db75-7skq4 1/1 Running 0 5h24m
node-debugger-aks-agentpool-36712949-vmss000000-dlf6h 1/1 Running 0 4h57m
node-debugger-aks-agentpool-36712949-vmss000000-kv2ln 0/1 Completed 0 5h9m
sputnik-metrics-965c64dbc-zt94k 2/2 Running 0 5h48m
PS C:\> kubectl logs lbapimselftest01-77f5b8db75-7skq4

... ...

[Info] 2023-10-16T11:26:38.139 [GatewayLogs], isRequestSuccess: False, totalTime: 0, category: GatewayLogs, callerIpAddress: 18.20.91.9, timeGenerated: 2023-10-16T11:26:38.139, region: ChinaNorth3, correlationId: 12909eb4-8dc4-438b-b27d-c667aca4852a, method: GET, url: http://14.6.8.17/echo/resource?param1=sample&param2=test, responseCode: 404, responseSize: 198, cache: none, clientProtocol: HTTP/1.1, lastError: {
"source": "configuration",
"reason": "OperationNotFound",
"message": "Unable to match incoming request to an operation.",
"section": "backend"
}, correlationId: 12909eb4-8dc4-438b-b27d-c667aca4852a
[Info] 2023-10-16T11:26:41.435 [GatewayLogs], isRequestSuccess: False, totalTime: 0, category: GatewayLogs, callerIpAddress: 18.20.91.9, timeGenerated: 2023-10-16T11:26:41.435, region: ChinaNorth3, correlationId: cd4ad591-c3fa-4241-8dca-e10370c8d776, method: GET, url: http://14.6.8.17/, responseCode: 404, responseSize: 198, cache: none, clientProtocol: HTTP/1.1, lastError: {
"source": "configuration",
"reason": "OperationNotFound",
"message": "Unable to match incoming request to an operation.",
"section": "backend"
}, correlationId: cd4ad591-c3fa-4241-8dca-e10370c8d776

 

问题解答

首先,需要查看APIM Self-hosted Gateway是否有关联到被访问的API,测试中所使用的是echo API。

再次访问API接口:http://xxx.xxx.xxx.xxx/echo/resource?param1=sample&param2=test, 依旧是404,就需要查看是否是API的设定中是否允许HTTP访问,

所以,判断这是因为APIs的设置中,只允许了HTTPS访问。当修改为HTTP(S)后,HTTP/HTTPS都可以访问成功。解决了最开始访问出现404的问题。

总结,需要检查APIM中APIs的两个设定:

1)是否为此API添加到 self-hosted gateway

2)访问中配置的是否只能HTTP (HTTPS) 访问

参考资料

使用 YAML 将自承载网关部署到 Kubernetes : https://docs.azure.cn/zh-cn/api-management/how-to-deploy-self-hosted-gateway-kubernetes

Azure API Management Self-hosted Gateway - SOAP API not working : https://learn.microsoft.com/en-us/answers/questions/1152222/azure-api-management-self-hosted-gateway-soap-api?page=1

 

【Azure APIM】解决APIM Self-hosted Gateway在AKS上,最开始访问时候遇见的404问题的更多相关文章

  1. 【Azure 应用服务】Python flask 应用部署在Aure App Service中作为一个子项目时,解决遇见的404 Not Found问题

    问题描述 在成功的部署Python flask应用到App Service (Windows)后,如果需要把当前项目(如:hiflask)作为一个子项目(子站点),把web.config文件从wwwr ...

  2. Azure ARM (12) ARM模式下,在负载均衡器上设置多个公网IP地址

    <Windows Azure Platform 系列文章目录> 最近在帮助一个客户设置WAF (Web Application Firewall),WAF厂商要求在负载均衡器上,设置多个公 ...

  3. [New Portal]Windows Azure Virtual Machine (21) 将本地Hyper-V的VM上传至Windows Azure Virtual Machine

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,并且保留OS中的内容. 注意:笔者没有执行Syspr ...

  4. 解决 placeholder 垂直不居中,偏上的问题

    解决 placeholder 垂直不居中,偏上的问题 安卓浏览器显示placeholder 垂直不居中,而iphone没问题,搜了一下答案,解决方法是把input的line-height去掉就行 参考 ...

  5. 用nginx的反向代理机制解决前端跨域问题在nginx上部署web静态页面

    用nginx的反向代理机制解决前端跨域问题在nginx上部署web静态页面 1.什么是跨域以及产生原因 跨域是指a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同,或是a页面为ip地 ...

  6. jm解决乱码问题-参数化-数据库操作-文件上传下载

    jm解决乱码问题-参数化-数据库操作-文件上传下载 如果JM出果运行结果是乱码(解决中文BODY乱码的问题) 找到JM的安装路径,例如:C:\apache-jmeter-3.1\bin 用UE打开jm ...

  7. SpringCloud gateway (史上最全)

    疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -25[ 博客园 总入口 ] 前言 ### 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群)Springcloud 高并发系列文章,将为大家 ...

  8. 解决使用IDEA启动Tomcat成功但localhost:8080无法访问的问题

    解决使用IDEA启动Tomcat成功但localhost:8080无法访问的问题

  9. Azure KeyVault(四)另类在 .NET Core 上操作 Secrets 的类库方法-----Azure.Security.KeyVault.Secrets

    一,引言 上一篇文章我们在 .Net Core Web 项目中添加了 "Microsoft.Azure.KeyVault" 的 Nuget 包操作 Azure KeyVault 的 ...

  10. Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=MyAppId&ip=192.168.145.1 Cause Could not complete get operation

    Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=M ...

随机推荐

  1. Linux与Windows系统字符集的简要学习

    背景 最近同事反馈公司的产品再更新了mysql-8.0.31的驱动jar包后部分功能报错. 问题核心原因 研发这边石磊老师已经找到了. 结论是Mysql8.0.26之后的数据库驱动好像会识别操作系统的 ...

  2. MAT的简单学习

    背景说明 Java遇到问题之后比较浅层的跟踪解决办法: jps 查看进程的main jar包 对应的进程信息 jstack 查看 堆栈信息 top -Hp PID 实时查看具体的CPU进程信息. 如果 ...

  3. 【原创】linux为什么不是实时操作系统

    一.什么是实时操作系统(RTOS)? 可参见本博客之前的文章: 什么是实时 实时的分类 常见的RTOS latency和jitter 总结一下,实时其实说的是系统响应事件需要的时间的确定性,时间必须确 ...

  4. 使用 Taro 开发鸿蒙原生应用 —— 探秘适配鸿蒙 ArkTS 的工作原理

    背景 在上一篇文章中,我们已经了解到华为即将发布的鸿蒙操作系统纯血版本--鸿蒙 Next,以及各个互联网厂商开展鸿蒙应用开发的消息.其中,Taro作为一个重要的前端开发框架,也积极适配鸿蒙的新一代语言 ...

  5. RN 表单TextInput的用法

    你要注意安卓和苹果是不同的哈 有些属性是苹果才有的,有些是安卓独有的 有些两个都有哈 // 边框要设置两个属性哈 borderColor: 'pink', marginTop: 10, 具体看地址 h ...

  6. linxu下面的绝对路径和相对路径

    绝对路径和相对路径 前言 相对路径与绝对路径 绝对路径 相对路径 目录的相关操作 绝对路径和相对路径 前言 学习linux,对于里面的路径肯定要很清楚.做下总结吧. 相对路径与绝对路径 绝对路径 路径 ...

  7. LyScript 实现应用层钩子扫描器

    Capstone 是一个轻量级的多平台.多架构的反汇编框架,该模块支持目前所有通用操作系统,反汇编架构几乎全部支持,本篇文章将运用LyScript插件结合Capstone反汇编引擎实现一个钩子扫描器. ...

  8. SpringCloud-01-Eureka Ribbon

    1.微服务技术 2.SpringCloud SpringCloud是目前国内使用最广泛的微服务框架.官网地址:https://spring.io/projects/spring-cloud. Spri ...

  9. 使用DoraCloud构建远程办公桌面云

    公司总部在上海.员工分布在各地.部分员工需要远程办公.为了实现远程办公,有几种备选方案. 方案1.在员工的PC上安装向日葵.ToDesk之类的远程工具. 方案2.公司总部提供VPN,员工通过VPN拨号 ...

  10. 资深工程师 VSCode C/C++ 必备开发插件

    1.前言 俗话说"工欲善其事,必先利其器",下面介绍几个VSCode提高开发效率的插件,资深工程师必备. 2.基础插件 2.1.Chinese(Simplified) vscode ...