gpt4 book ai didi

python - 在终端中将多个函数部署到 Google Cloud Functions?

转载 作者:行者123 更新时间:2023-12-01 01:17:00 30 4
gpt4 key购买 nike

要为单个触发事件部署单个函数,我们可以按照部署文档 Google Cloud Functions 中概述的说明进行操作。 :

gcloud functions deploy NAME --runtime RUNTIME TRIGGER [FLAGS...]

平均部署时间为 30s-2m,这个时间还算合理。

但是,我想知道是否可以编写一个脚本(例如用Python)来一次部署多个函数?

例如:

//somefile.py

gcloud functions deploy function_1 --runtime RUNTIME TRIGGER [FLAGS...]
gcloud functions deploy function_2 --runtime RUNTIME TRIGGER [FLAGS...]

最佳答案

我真的很喜欢使用invoke此类问题的库。特别是,它非常适合在 Python 脚本中运行 bash 命令(例如 gcloud),而无需在 子进程 中进行修改。

就您而言,您可以创建一个如下所示的 tasks.py 文件

from invoke import task

@task
def deploy_cloud_functions(c):
c.run('gcloud functions deploy function_1 --runtime RUNTIME TRIGGER [FLAGS...]')
c.run('gcloud functions deploy function_2 --runtime RUNTIME TRIGGER [FLAGS...]')

然后通过调用来运行它

invoke deploy-cloud-functions

Note that if you name your function deploy_cloud_functions you have to call it using: invoke deploy-cloud-functions (note the -). You can find a list of current available tasks in your directory using invoke --list

您还可以使用线程库对其进行并行化(尽管我自己没有在调用中使用它进行测试)。但它肯定会在控制台中产生丑陋的输出。即

from threading import Thread
from invoke import task

@task
def deploy_cloud_functions(c):
Thread(lambda x:
c.run('gcloud functions deploy function_1 --runtime RUNTIME TRIGGER [FLAGS...]')
).start()
Thread(lambda x:
c.run('gcloud functions deploy function_2 --runtime RUNTIME TRIGGER [FLAGS...]')
).start()

关于python - 在终端中将多个函数部署到 Google Cloud Functions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54237969/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com