【发布时间】:2024-04-19 10:05:01
【问题描述】:
我在 Google App Engine 标准环境 Python 中有一个 Flask 应用程序,我还有一个带有 HTTP 触发器的云函数,它接受包含文件 URL 的 JSON 正文。 CF 在该 URL 下载文件,然后将其保存到 GCS 存储桶。 GAE 服务帐户具有 Cloud Function Invoker 权限,但在我的 GAE 代码中使用 urlfetch.fetch() 触发 CF 时,App Engine 代码会收到 403 Forbidden 错误,除非我让任何人都可以调用 CF 触发器。
如何在 Python 中从 GAE 成功调用/触发 CF?我认为答案是其中之一:
- 将 GAE 服务帐户的 IAM 权限设置为 {enlighten me here}
- 像这样在
urlfetch.fetch()中添加身份验证标头{不同的启示} - 使 CF 可从任何地方触发,但硬编码一些密钥,以便 CF 代码本身处理身份验证。
【问题讨论】:
-
调用受 IAP 授权保护的 Cloud Functions 时,需要添加 HTTP
Authorization: Bearer [IDENTITY_TOKEN]标头。
标签: python google-app-engine google-cloud-platform google-cloud-functions google-cloud-iam