我正在尝试部署几个云功能,这些功能都在同一个存储库中,但在不同的python文件中。
基本上,我有这两个函数my_repo
- function_1_folder
- function_1.py
- requirements.txt
- .gcloudignore
- function_2_folder
- function_2.py
- requirements.txt
- .gcloudignore
在function_1.py
中,我有function_1()
,我想将其部署到我的云功能function1
(注意这里没有下划线),function_2
也是如此。
我去function_1_folder
,我已经指定了一个入口点(--entry-point function_1
),但我得到一个"丢失的main.py"错误。
如何指定python文件名和函数名(如果可能的话)?gcloud是否也会部署requirements.txt
来安装我的函数所依赖的包?
谢谢
不能随意命名源文件。Python源文件应该始终命名为main.py
,这是结构化要求的一部分。您的目录应该是这样的:
my_repo
- function_1_folder
- main.py
- requirements.txt
- .gcloudignore
- function_2_folder
- main.py
- requirements.txt
- .gcloudignore
标志--entry-point
用于指定源文件上函数的名称。例如(如HTTP):
main.py
def function_1(request):
return 'Hello World'
在function_1_folder
内运行此命令:
gcloud functions deploy function1 --entry-point function_1 --runtime python37 --trigger-http
要回答您的最后一个问题,requirements.txt与main.py一起包含,并且是一个有效的配置。这些依赖项将在构建时安装。
作为附加参考,请参见:https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/functions