Python Google 云函数中的代码未显示所需的输出
Python code in Google Cloud function not showing desired output
我有以下几行 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
中部署相同的代码时,输出显示正常
我必须如下替换 GCF
中的第一行代码以使其部署。
def hello_world(self):
有什么建议可以让 GCF
显示所需的输出,即 curl
命令的输出吗?
您的功能将因 2 个原因而无法运行:
def hello_world(request):
....
- 其次,你不能使用系统调用。事实上不完全是,你可以执行系统调用,但是,因为你不知道安装了哪些package/binaries,你不能依赖这个。它是无服务器的,您无需管理底层基础设施和运行时间环境。
这里假设 CURL 安装在 运行time 映像上。也许是,也许不是,也许是,也许将来会被删除!!你不能依赖它!!
如果你想管理你的运行时间环境,你可以使用Cloud Run。您将管理您的 运行 时间环境,您可以在上面安装您想要的东西,然后您确定您可以做什么。
最后评论:
注意:除了执行 CURL,您还可以对同一个 URL 执行 http get 请求以获取 IP
为什么要知道传出IP?它是无服务器的,您也不用管理网络。您将通过 Google 个 IP 访问互联网。它可以随时更改,并且来自您的项目或其他人(如我)的项目的其他云功能(或云 运行)能够使用相同的 IP。这是 Google 个 IP,不是你的!如果这是您的要求,请告诉我,有解决方案!
我有以下几行 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
中部署相同的代码时,输出显示正常
我必须如下替换 GCF
中的第一行代码以使其部署。
def hello_world(self):
有什么建议可以让 GCF
显示所需的输出,即 curl
命令的输出吗?
您的功能将因 2 个原因而无法运行:
def hello_world(request):
....
- 其次,你不能使用系统调用。事实上不完全是,你可以执行系统调用,但是,因为你不知道安装了哪些package/binaries,你不能依赖这个。它是无服务器的,您无需管理底层基础设施和运行时间环境。
这里假设 CURL 安装在 运行time 映像上。也许是,也许不是,也许是,也许将来会被删除!!你不能依赖它!!
如果你想管理你的运行时间环境,你可以使用Cloud Run。您将管理您的 运行 时间环境,您可以在上面安装您想要的东西,然后您确定您可以做什么。
最后评论:
注意:除了执行 CURL,您还可以对同一个 URL 执行 http get 请求以获取 IP
为什么要知道传出IP?它是无服务器的,您也不用管理网络。您将通过 Google 个 IP 访问互联网。它可以随时更改,并且来自您的项目或其他人(如我)的项目的其他云功能(或云 运行)能够使用相同的 IP。这是 Google 个 IP,不是你的!如果这是您的要求,请告诉我,有解决方案!