【问题标题】:GCloud Function not firing after Firestore CreateFirestore 创建后 GCloud 函数未触发
【发布时间】:2019-06-09 21:07:17
【问题描述】:

我已经使用以下命令行脚本向 gcloud 部署了一个函数:

gcloud functions deploy my_new_function --runtime python37 \
--trigger-event providers/cloud.firestore/eventTypes/document.create \
--trigger-resource projects/my_project_name/databases/default/documents/experiences/{eventId}

这很成功,并且我的功能已部署。这是我预期的结果:

任何时候在experiences firestore 集合中创建新文档时,都会调用函数my_new_function

实际发生了什么:

my_new_function 永远不会因为在experiences 中创建新文档而被调用

【问题讨论】:

  • 你怎么知道它没有触发?您的代码中应该运行但没有运行的究竟是什么?您是否记录任何内容来验证这一点?
  • @DougStevenson 在我的 GCloud 帐户中,我正在查看函数并且没有调用。查看日志时,我只看到“更新功能”的完整内容,但没有说该功能已被调用。函数中还有一个print 语句,它从不输出到日志中。
  • 您到底在部署什么?您是否尝试从台式计算机部署代码?
  • @DougStevenson 我有一个文件夹~/Documents/gcloud-functions,该文件夹中有一个文件main.py,该文件中有一个函数my_new_function(data, context)。它似乎已正确部署,因为 gcloud 函数中的“源”显示了我机器上的内容。
  • @DougStevenson 对新截图有什么想法吗?

标签: google-cloud-firestore google-cloud-functions


【解决方案1】:

--source 参数用于deploying from source control,您不会尝试这样做。你会想要deploy from your local machine。您从要部署的目录运行 gcloud。

【讨论】:

  • 我进行了此更改并重新部署,但在创建新文档时我仍未看到任何调用。也许我的--trigger-resource 错了?我最初在 Firebase 中设置了这个项目。我唯一拥有的 firestorm 集合名为 experiences,我的项目 ID 是 points-experiences。我使用的--trigger-resourceprojects/points-experiences/databases/default/documents/experiences/{eventId} 注意:eventId 不是集合中文档的属性,可以吗?
  • 如果您遵循文档,应该没问题。它不应该有任何根本性的破坏。 cloud.google.com/functions/docs/calling/cloud-firestore
  • 由于您没有显示代码或数据库屏幕截图或任何其他可能用于诊断问题的内容,我认为我们无能为力。
猜你喜欢
  • 2019-10-12
  • 1970-01-01
  • 1970-01-01
  • 2021-06-02
  • 1970-01-01
  • 2017-08-27
  • 2018-06-01
  • 2017-05-07
  • 1970-01-01
相关资源
最近更新 更多