Azure Spring Apps蓝绿部署:预生产端点测试问题求助
在Azure Spring Apps蓝绿部署中绕过预生产Basic Auth进行自动化测试
当然可以在标记为生产环境前对预生产端点做自动化测试,给你几个实用的解决思路:
临时禁用预生产环境的Basic Auth
测试期间可以临时关掉预生产实例的Nginx Basic Auth,测试完成后再重新开启。用Azure CLI的话可以这么操作:az spring app update --name <预生产应用名> --resource-group <资源组名> --service <Spring服务名> --disable-http-auth注意测试结束后一定要恢复认证配置,避免暴露未受保护的预生产环境。
在测试脚本中注入Basic Auth头
虽然你的应用用的是其他认证方式,但可以在自动化请求里先带上Nginx要求的Basic Auth头,再附加应用自身的认证信息。比如用curl测试的示例:curl -H "Authorization: Basic <Base64编码的用户名密码>" -H "X-自定义认证头: <你的应用令牌>" https://<预生产URL>/目标端点不管是用Python Requests、JUnit还是Postman集合,都能很方便地统一添加这个临时头,测试完成后移除即可。
利用内部测试通道绕过外部Auth
Azure Spring Apps支持配置私有端点或者内部路由,你可以让自动化测试通过内部网络访问预生产实例,绕开外部Nginx的Basic Auth校验。比如配置Spring Cloud Gateway的内部路由,只允许测试服务访问预生产应用的内部地址,这样测试请求就不需要处理外部认证了。自定义Nginx配置放行测试端点
如果有权限修改预生产环境的Nginx配置,可以添加规则让特定测试端点跳过Basic Auth。比如针对健康检查、测试专用的接口路径:location /test-api/ { auth_basic off; proxy_pass http://你的应用实例; }这样自动化测试可以针对这些开放的测试端点执行验证,不影响其他接口的安全防护。
内容的提问来源于stack exchange,提问作者kishore
相关产品推荐
相关产品推荐

