无法从应用引擎访问 Google 云功能(带有入口控制)

Posted

技术标签:

【中文标题】无法从应用引擎访问 Google 云功能(带有入口控制)【英文标题】:Google cloud functions not accessible from app engine (with ingress controls) 【发布时间】:2020-09-21 16:59:20 【问题描述】:

我有一个通过 Google Cloud 托管的 API。 API 的主要入口点是 App Engine 实例(标准),然后需要能够调用各种云函数来执行其任务。

为了确保云功能的安全,我想将入口控制设置为“仅允许内部”。

我已将云函数和 App Engine 部署在同一区域 (us-central1),但每次 App Engine 实例尝试调用云函数时,都会收到 403 错误。我尝试为 App Engine 设置 VPC 连接器,但这没有帮助。

这是 app.yaml 文件:

service: my-test-app

runtime: nodejs10

env_variables:
    STAGE: "dev"

instance_class: F1

vpc_access_connector:
    name: "projects/my-test-project/locations/us-central1/connectors/test-vpc-connector"

关键的云功能配置是Ingress Setting。我将其设置为仅允许内部流量。如果我将其设置为允许所有流量,一切正常(只是非常不安全!)

对我可能遗漏的内容有什么建议吗?

【问题讨论】:

请编辑问题,提供有关您如何部署和配置该功能以及如何从 GAE 调用它的完整详细信息。我们应该能够准确地根据您提供的信息重现您的情况。 更新@DougStevenson! 你是如何从 GAE 调用函数的? 【参考方案1】:

我找到了解决方案!如果我将 App Engine 设置为 flex 环境,则一切正常。看起来标准环境是个问题。

【讨论】:

好消息,如果此解决方案对您有用!另外,这里是GAE Standard - Communicating Between Your Services的文档:“要授权你的服务和其他谷歌云服务之间的请求,你需要Set Up Authentication for Server to Server Production Applications。”

以上是关于无法从应用引擎访问 Google 云功能(带有入口控制)的主要内容,如果未能解决你的问题,请参考以下文章

三步搭建自己的Google搜索引擎

Google Cloud DataStore 说明

Google App Engine 应用无法访问 Google Cloud Storage 存储分区

Java堆转储在Google App引擎标准环境中?

应用引擎入口点的目的是啥?

将基本的 Angular 2 应用程序部署到 Google App Engine