如何直接执行云函数?

问题描述 投票:0回答:1

我尝试如下直接执行云函数,但可能会出现问题并遇到语法错误。

-- command
gcloud functions call(cf-pubsub --region=asia-northeast1) --data 
'{
  "data": {
    "bucket":"bucket_name",
    "name":"filename.json"
  }
}'

-- error
bash: syntax error near unexpected token `('
bash: {
      "data": {
        "bucket":"bucket_name",
        "name":"filename.json"
      }
  }
}: No such file or directory

我们在GCP中有数十亿个目标文件,读取所有blob_list需要太多时间,所以我想直接通过命令执行它们。

有没有更好的方法和正确的语法,请告诉我。

bash google-cloud-platform google-cloud-functions gcloud
1个回答
0
投票

您所遵循的命令语法是错误的。 call(cf-pubsub --region=asia-northeast1) 不应用括号括起来。不要忘记,如果您使用的是 Cloud Functions gen 2,则需要传递 --gen2 参数。

对于你的情况应该是,

gcloud functions call cf-pubsub --region=asia-northeast1 --data '{
  "data": {
    "bucket":"bucket_name",
    "name":"filename.json"
  }
}'

您可以通过文档访问您共享的命令的文档。这样的文档还可以帮助您通过填补简单的空白来编写命令。

考虑到您有“GCP 中的数十亿个目标文件”需要处理,最好的方法是仅将存储桶名称作为参数传递给函数,函数将逐个列出并处理文件在一个循环内。然后,每个已处理的文件需要移动到另一个文件夹或存储桶,以将其保留为已处理文件的记录器。如果 Cloud Functions (gen2) 1 小时执行时间不够,您可以链接函数再次调用,直到函数返回所需/适当的值。

© www.soinside.com 2019 - 2024. All rights reserved.