无法使HTTP PATCH在Google Cloud Run实例上运行

时间:2019-10-21 20:15:45

标签: google-cloud-run postgrest

我已经运行了一个称为Postgrest的网络服务器,该服务器在postgres数据库的顶部生成一个REST API。我已经在Google Cloud run中运行了它,并且大部分情况下都可以运行。我需要执行的HTTP操作是POST,GET,DELETE和PATCH。

除PATCH(我用来更新数据库中的现有值)外,所有其他东西都可以正常工作。 当我从curl命令提示符运行命令时,没有给出错误提示,但是它不起作用。

https://postgrest-q5mmtshbma-uc.a.run.app/notes?noteid=eq.3 -X PATCH -H“授权:承载$ TOKEN” -H“内容类型:application / json” -d'{“ note”:“ updated!”“

当我针对本地运行的同一postgrest版本运行此程序时,一切正常,因此我想Google Cloud运行可能存在问题,并且不允许/接受PATCH请求吗?同样,POST,DELETE和GET都可以正常工作。

任何人都知道这里可能会发生什么?

1 个答案:

答案 0 :(得分:2)

我最终发现与此有关的问题与在PostGres DB中使用RLS(行级安全性)有关,并且我为插入,更新,删除和选择设置了特定的策略。

我认为“更新”策略设置不正确,因此更新失败,但是postgre DB和postgrest WebServer都没有为此提供错误。

最终,当我在此表上重新创建更新策略时,PATCH(更新)命令成功运行。