Google Cloud函数中的Python代码没有显示期望的输出



我有以下python代码行

import os
def hello_world():
r=os.system("curl ipinfo.io/ip")
print (r)
hello_world()

显示在Google Cloud Shell中从命令行执行时所需的输出,但在IP Address输出末尾似乎有一个0

$ python3 main2.py
34.X.X.2490

当我在Google CLoud function中部署相同的代码时,它显示OK作为输出

我必须替换GCF中的第一行代码,如下所示,以使其部署。

def hello_world(self):

任何建议,使GCF显示所需的输出,这是curl命令的输出?

你的函数不能工作有两个原因:

  1. 首先,你不尊重HTTP云函数Python函数签名:
def hello_world(request):
....
  1. 其次,不能使用系统调用。实际上不完全是这样,您可以执行系统调用,但是,由于您不知道安装了哪个包/二进制文件,因此不能依赖于此。它是无服务器的,你不管理底层基础设施和运行时环境。

这里假设CURL安装在运行时映像上。也许是,也许不是,也许是,也许将来会被移除!!你不能依赖那个!!


如果你想管理你的运行时环境,你可以使用Cloud Run。你将管理你的运行时环境,你可以在上面安装你想要的东西,然后你确定你能做什么。

去年备注:

注意:您可以对相同的URL执行http get请求来获取IP

,而不是执行CURL。为什么要知道传出IP?它是无服务器的,你也不用管理网络。您将通过谷歌ip访问互联网。它每次都可以更改,并且其他云功能(或云运行),来自您的项目或来自其他人(如我)的项目,都可以使用相同的ip。这是谷歌的ip,不是你的!如果这是你的要求,让我知道,有解决方案!

相关内容

  • 没有找到相关文章

最新更新