You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Cloud中ATP调用Compute实例Flask服务报错求助

问题排查与解决方案

权限问题(优先处理)

错误栈中明确出现 ORA-01031: insufficient privileges,这是触发HTTP请求失败的核心原因之一:

  • 执行PL/SQL的用户必须被授予UTL_HTTP包的执行权限:
    GRANT EXECUTE ON UTL_HTTP TO 你的用户名;
    
  • 若使用APEX的apex_web_service,还需给用户分配APEX_WEB_SERVICE_ACCESS角色,或者直接授权APEX Web服务访问权限:
    GRANT APEX_WEB_SERVICE_ACCESS TO 你的用户名;
    
  • 另外,ATP本身有网络访问管控,要确认该用户被允许发起出站HTTP请求。

网络连通性排查

就算计算实例开放了0.0.0.0/0的入站规则,ATP到计算实例的网络通路仍需确认:

  • 若ATP和计算实例在不同VCN,必须配置VCN对等连接;同一VCN下,要检查ATP所在子网的安全组是否允许出站访问计算实例的5000端口。
  • 计算实例的安全组入站规则要确认是针对TCP协议的5000端口,没有额外的网络ACL限制源IP。
  • 可以先用UTL_HTTP.REQUEST做基础连通测试,暂时跳过HTTPS排除干扰(如果Flask支持HTTP的话):
    DECLARE
        l_response VARCHAR2(4000);
    BEGIN
        l_response := UTL_HTTP.REQUEST('http://130.zz.yy.xx:5000/test');
        DBMS_OUTPUT.PUT_LINE(l_response);
    END;
    

SSL/HTTPS配置问题

如果调用的是HTTPS地址,ATP需要信任Flask应用的SSL证书:

  • 若Flask用的是自签名证书,ATP默认不会信任,必须把证书导入到Oracle钱包:
    1. 导出Flask的SSL证书文件(比如cert.pem)。
    2. 在ATP中配置钱包并导入证书:
      BEGIN
          UTL_HTTP.SET_WALLET('file:/wallet/path', 'wallet_password');
      END;
      
      也可以直接把证书添加到ATP自带的信任钱包中。
  • 同时检查Flask的SSL配置,确保证书和密钥匹配,且支持ATP环境要求的TLS版本(至少TLS 1.2)。

内容的提问来源于stack exchange,提问作者Heinz F.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 00:45:27