当前位置: 首页 > 知识库问答 >
问题:

谷歌云只能通过谷歌应用程序引擎执行http请求

谷梁永年
2023-03-14

我有一个nodejs应用程序部署在谷歌应用引擎,它触发超文本传输协议云功能,认为简单的超文本传输协议调用(使用axios)从谷歌云Sql获取数据。

将使用该站点的每个人都将能够看到http请求并复制它。

什么是保护我的谷歌云功能的最好方法,只能从谷歌应用程序引擎调用?

共有2个答案

尉迟宇定
2023-03-14

我觉得@Denis T提到的帖子确实提到了你的场景选择。既然您评论它对您的方案不起作用,您是否考虑仅对App Engine默认服务帐户限制对云功能的访问?丹尼斯引用的答案中提到了如何做到这一点。

狄阳秋
2023-03-14

最好的方法是部署一个私有函数。

  • 当您使用cli部署函数时,请使用--no-laus-unAuthated参数。此功能在Beta中
  • 在控制台上,您不能在部署函数时执行此操作。但是,您可以在函数列表页中删除对所有用户的访问权限
    • 点击函数行(不是函数名,是行)
    • 显示右上角的信息面板
    • 从云函数调用程序中删除所有用户。

    现在只授权AppEngine访问您的函数

    • 在控制台中,在相同的位置(函数调用器),添加AppEngine默认服务号:@appspot.gserviceaccount.com
    • 使用cli,使用这个命令
    gcloud beta functions add-iam-policy-binding <Your Function Name> \
      --member='serviceAccount:<your project id>@appspot.gserviceaccount.com' \
      --role='roles/cloudfunctions.invoker'
    

    现在只有角色为cloudfunctions的用户/服务帐户。调用程序可以调用您的函数。

 类似资料:
  • 我想能够从谷歌云功能中调用谷歌应用程序引擎,有可能吗?找不到任何解决办法

  • 我有一个应用引擎项目。 我也有谷歌云功能。 我想从App Engine项目中调用谷歌云功能。我就是没法让它发挥作用。 是的,如果我将函数完全公开(即将云函数设置为“允许所有流量”,并为“所有用户”创建一个允许调用函数的规则),它就可以工作。但是如果我限制这两个设置中的任何一个,它会立即停止工作,我得到403。 应用程序和函数在同一个项目中,所以我至少假设将函数设置为“仅允许内部流量”应该可以正常工

  • 谷歌云的功能似乎非常有趣,因为它是无服务器和零维护的解决方案。但是,什么时候在谷歌应用程序引擎上使用谷歌云功能合适呢?

  • 我正在看新的谷歌云数据存储,看起来很棒。但有件事我不明白。。。它应该替代谷歌应用引擎数据存储吗?我如何在GAE内部使用它?它们之间有什么区别? 我在Java有一个GAE应用程序,它使用3个实体,每个实体都有数千行,我需要经常做连接...

  • 我是谷歌应用引擎的新手。要使用Java App Engine,Google提供了两个选项:创建一个Maven项目,或者由Eclipse Google插件支持的非Maven项目。根据文档,Eclipse版本更容易。那么我应该继续日食吗?但是我看到了很多关于maven的帖子。有人能评论一下使用Maven的利弊吗。 谢谢