Cloud Function 的端点返回 403 Forbidden

pai*_*seq 8 google-cloud-platform

我正在按照 Google 的教程为我的云功能设置端点。

当我尝试使用 URL 从浏览器访问端点时,service_name.a.run.app/function1我得到

Error: Forbidden
Your client does not have permission to get URL /function1GET from this server
Run Code Online (Sandbox Code Playgroud)

作为上述教程和Google 产品经理的回答的一部分,我通过授予 ESP 调用我的函数的权限来保护我的函数。

gcloud beta functions add-iam-policy-binding function1 --member "serviceAccount:id-compute@developer.gserviceaccount.com" --role "roles/cloudfunctions.invoker" --project "project_id"
Run Code Online (Sandbox Code Playgroud)

我的openapi-functions.yaml

swagger: '2.0'
info:
  title: Cloud Endpoints + GCF
  description: Sample API on Cloud Endpoints with a Google Cloud Functions backend
  version: 1.0.0
host: HOST
x-google-endpoints:
- name: "HOST"
  allowCors: "true
schemes:
  - https
produces:
  - application/json
paths:
  /function1:
    get:
      operationId: function1
      x-google-backend:
        address: https://REGION-FUNCTIONS_PROJECT_ID.cloudfunctions.net/function1GET
      responses:
        '200':
          description: A successful response
          schema:
            type: string
Run Code Online (Sandbox Code Playgroud)

请注意,我添加了

- name: "HOST"
  allowCors: "true'
Run Code Online (Sandbox Code Playgroud)

到我的.yaml文件,因为我需要从 Firebase 上托管的静态网站访问端点。

小智 8

我最近遇到了这个。事实证明,从 2020 年 1 月 15 日起,新功能默认需要身份验证。

有关详细信息,请参阅此处的文档

解决方案是在Google Cloud Console的Cloud Functions页面中手动Cloud Functions Invoker为用户添加权限。allUsers


小智 1

您收到此错误消息 \xe2\x80\x9cYour client 无权从该服务器获取 URL /\xe2\x80\xa6 \xe2\x80\x9d 的原因有多种,其中包括:

\n\n

您的互联网浏览器历史记录 - 尝试删除您的历史记录/缓存

\n\n

帐户权限不足 - 尝试使用更高权限的其他帐户

\n\n

缺少 SSL 参数 - 尝试使用 \xe2\x80\x9ccurl\xe2\x80\x9d 命令直接访问 URL

\n\n

检查是否有恶意软件

\n