Gcloud函数使用特定的python文件和特定的函数名称进行部署

Val*_*ain 2 python google-cloud-platform gcloud google-cloud-functions

我正在尝试部署多个云函数,它们都在同一个存储库中,但在不同的 python 文件中。

基本上,我有这两个功能

my_repo
- function_1_folder
  - function_1.py
  - requirements.txt
  - .gcloudignore
- function_2_folder  
  - function_2.py
  - requirements.txt
  - .gcloudignore
Run Code Online (Sandbox Code Playgroud)

在里面function_1.py我有function_1()我想要部署到我的云函数function1(注意这里没有下划线),对于function_2.

我转到function_1_folder并指定了入口点 ( --entry-point function_1),但收到“缺少 main.py”错误。

如何指定 python 文件名和函数名(如果可能)?gcloud 还会部署requirements.txt安装我的函数所依赖的软件包所需的包吗?

谢谢

Don*_*ndi 5

您不能任意命名源文件。Python 源文件应始终命名main.py. 您的目录应如下所示:

my_repo
 - function_1_folder
   - main.py
   - requirements.txt
   - .gcloudignore
 - function_2_folder  
   - main.py
   - requirements.txt
   - .gcloudignore
Run Code Online (Sandbox Code Playgroud)

该标志--entry-point用于指定源文件中函数的名称。例如(作为 HTTP):

主要.py

def function_1(request):
    return 'Hello World'
Run Code Online (Sandbox Code Playgroud)

在里面运行这个命令function_1_folder

gcloud functions deploy function1 --entry-point function_1 --runtime python37 --trigger-http 
Run Code Online (Sandbox Code Playgroud)

为了回答您的最后一个问题,requirements.txt 与您的 main.py 一起包含在内,并且是有效的配置。这些依赖项将在构建时安装。

作为其他参考,请参阅:https ://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/functions