尝试从网络执行Cloud Function端点时收到以下错误:
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 403 (Forbidden)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5pxno-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
</style>
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>
<p><b>403.</b> <ins>That’s an error.</ins>
<p>Access is forbidden. <ins>That’s all we know.</ins>
我遵循了本教程:https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/functions/helloworld/main.py
当按以下说明调用函数时:https://cloud.google.com/functions/docs/writing/http,我收到403错误。我已登录gcloud项目并使用了正确的用户。
部署命令:
gcloud beta functions deploy hello_get --runtime python37 --trigger-http
来自此文档:https://cloud.google.com/functions/docs/concepts/python-runtime
使用以下命令调用它:
curl -X POST https://<REGION-PROJECT_ID>.cloudfunctions.net/hello_get
来自此文档:https://cloud.google.com/functions/docs/writing/http
这很奇怪,因为这大约是在3周前开始的。旧功能停止工作并返回403响应。我在UI中部署了示例函数,该函数仅在从UI部署时有效,但在通过http请求到达端点时失败,并显示403。
此外,使用命令gcloud functions call hello_get
过去两周中GCF身份验证是否发生了变化?
更新 我能够找出问题所在。我参与的项目和用户处于beta身份验证程序中。切换到不在程序中的用户和项目后,我便能够访问端点。
谢谢您的帮助。
答案 0 :(得分:1)
我浏览了更多与同一错误相关的帖子。他们中的大多数建议检查this链接以获得许可。还提到使用this文档使用稳定版本进行部署,然后重试。始终建议不要使用beta,直到需要任何beta标志才能使用该命令。在执行此操作之前,请确保您使用的是current版的Google Cloud SDK。有一点还不清楚,如果您用于在UI中部署同样应该使用端点的功能。
答案 1 :(得分:0)
在我看来,其他IAM功能已添加到Google Cloud Functions中,因此,您可能尚未打开allUser对功能的访问权限(仅供参考,这使整个网络都可以访问)。
在Cloud Functions主页上,突出显示要添加所有访问权限的Cloud Function。
单击右上角的“显示信息面板”。
单击“添加成员”并键入“ allUsers”,然后在“角色”框中的“云功能”下选择“云功能调用者”。
单击“保存”