首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >云函数返回403响应

云函数返回403响应
EN

Stack Overflow用户
提问于 2021-02-17 16:04:10
回答 1查看 922关注 0票数 0

我将我的一个云函数的连接设置更改为‘只允许内部流量’设置。

我的nodejs应用程序运行在同一个项目中,与我的云功能相同。我从云函数中删除了'allUser'访问,并添加了作为云函数的调用者。

但是当我从我的nodejs应用程序调用这个函数时,我得到了403个错误。我能做些什么来解决这个问题?

我遵循这一点作为指导:这里

------------------UPDATE----------------

非常感谢下面的解释。现在它已经开始有意义了。因此,我的设置如下:

云功能侧:

  1. 我增加了My-PROJECT-ID@appspot.gserviceaccount.com作为函数调用者,并删除了'allUsers‘作为调用者。
  2. 在变量、网络和高级设置下,我单击了“只允许内部通信量”,然后在均衡设置下添加了前面使用IP 10.8.0.0创建的连接器。我添加了projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME格式的连接器,并通过VPC连接器选择了路由所有通信量

App引擎(节点js)侧:

当我在函数公开可用时调用它时,我使用的是给定的主机名。现在,我的帖子请求如下所示:

代码语言:javascript
运行
复制
const optionsCFS = {
     hostname: "10.8.0.0",//process.env.CLOUD_URL,
     port: 443, //(tried 28 as well)
     timeout: 5000,
     path: process.env.CLOUD_ORDER_SAVE_PATH, // remaining path
     method: 'POST',
     headers: {
       'Content-Type': 'application/application-json',
       'Content-Length': CFSdata.length,
       //'charset': 'utf-8'
     }
  }
    console.log('Going to call CF ')
    const orderReq = https.request(optionsCFS, resCFServer => 
        { // Do something })

我得到错误502 -坏网关。

EN

回答 1

Stack Overflow用户

发布于 2021-02-17 20:25:11

当您将通信量设置为仅内部时,您会对云函数(或者云运行,这是相同的行为)说:

  • 嘿,只接受来自VPC的流量。

然而,你并没有说:

  • 嘿,让我的服务只能通过私有IP访问,而不再通过公共IP访问。

区别很重要,因为即使您将云函数(或云运行)设置为入口模式Allow internal traffic only,该服务仍然公开在互联网上,仍然可以公开访问,但是服务前面的网关(我猜是Google前端)执行另一个检查:“您来自VPC吗?”

此检查基于仅存在于内部Google网络中的流量元数据(这也意味着通信量停留在Google主干中,以保留这些元数据)。

所以我继续我的解释..。当您将无服务器VPC连接器设置为App时,只能将私有通信量路由到符合RFC 1918的VPC连接器。

然而,正如所解释的,云函数和云运行服务可以在互联网上访问,而不是在私有IP上(符合RFC 1918)。因此,您的App流量不会通过无服务器的VPC连接器,也不能在入口检查期间被接受为“内部”通信量。

通过云函数和云运行,您可以将vpc-egress值设置为private-ranges-only (类似于App的默认行为,只路由RFC 1918范围内的in )或all。这是您需要使用的最新模式,用于从云函数或云运行中调用内部唯一服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66245642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档