我正试图从我的PHP项目中调用我的谷歌云函数,但每次调用时,我都会收到以下错误:
Error: Forbidden Your client does not have permission to get URL /test-function from this server.
所以我似乎需要验证,但我不知道该怎么做。我在谷歌云功能的触发器设置中启用了HTTPS。
现在,我正在尝试在调用函数后回显响应。
//The Cloud Function's trigger URL (edited for this purpose)
$url = "https://mycloudfunctionurl/test-function";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// Set so curl_exec returns the result instead of outputting it.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Get the response and close the channel.
$response = curl_exec($ch);
echo "Printing response: nn";
echo $response;
curl_close($ch);
看起来您使用"需要身份验证";选定。如果您这样做,那么您将需要通过Cloud IAM管理授权用户,并使用授权用户的身份调用呼叫。您可以看到有关下载和使用密钥文件执行此操作的信息:
https://cloud.google.com/functions/docs/securing/authenticating
然而,根据您的云功能正在做什么,答案可能只是不需要身份验证(您可以选择在功能内处理身份验证和授权;例如,使用API密钥或任何其他所需的方法(。显然,从安全角度出发,做需要做的事情;但是,如果这是合理的,那么您不必做任何额外的事情——您的PHP代码应该按原样工作。
要走这条路,您只需使用";允许经过身份验证的调用";选择。
如果你是从云控制台部署的,那么它只是"下的单选按钮选项;"认证";,朝向创建函数表单的底部。
如果您使用gcloud命令行工具进行部署,请确保包含"--允许未经验证的";转换
https://cloud.google.com/functions/docs/deploying/filesystem