首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcloud .--触发资源,用于在Firestore上触发--写“CloudEvents”需要一点澄清

gcloud .--触发资源,用于在Firestore上触发--写“CloudEvents”需要一点澄清
EN

Stack Overflow用户
提问于 2022-01-14 22:52:04
回答 1查看 208关注 0票数 0

我阅读并遵循了在Google云修复触发器上找到的例子。我在下面介绍了这些例子。

代码语言:javascript
复制
gcloud functions deploy my-second-event \
--entry-point CloudEventFunction2.Function \
--runtime dotnet3 \
--trigger-event "providers/cloud.firestore/eventTypes/document.create" \
--trigger-resource "projects/my-projectId/databases/(default)/documents/messages/{pushId}" \

请注意,此资源的/documents/messages/{pushId}部分与"Deploy“部分保持一致。

然而,再往下一点--触发资源'NAME‘被描述为.

函数将侦听的完全限定的数据库路径。这应该符合以下格式:"projects/YOUR_PROJECT_ID/databases/(default)/documents/PATH“{pushId}文本是在指定文档路径时描述的通配符参数。

现在,当我们按照“指定文档路径”的链接进行操作时,我们会感到困惑。我相信我理解“函数只响应文档更改,不能监视特定字段或集合”的含义。然而,如果我们查看上面的/documents/messages/{pushId} -‘document’是一个集合,而'messages‘是一个文档。根据上述仅响应文档更改的函数的限制,我不希望{ pushId }事件触发(因为pushId要么是集合,要么是字段(它直接位于文档“消息”上)。

似乎需要指出的是,将{pushId}外卡直接放在收藏的“文档”之下;

--trigger-resource "projects/my-projectId/databases/(default)/documents/{pushId}"

这意味着当一个新消息被推送到文档集合时,云事件就会被触发。

不过,上面的变化……

代码语言:javascript
复制
ERROR: (gcloud.functions.deploy) ResponseError: status=[400], code=[Ok], message=[
The request has errors
Problems:
event_trigger:
Expected value {pushId} to match regular expression [^/]+/[^/]+(/[^/]+/[^/]+)*
]

虽然我肯定我做错了什么,但我很难从上面的观察中理解,我的功能也没有被触发。

对于如何理解这一点,或者至少如何让我的函数在创建时触发,我将非常感激。

我使用的“函数”来自Visual (2022)提供的dotnet模板。

EN

回答 1

Stack Overflow用户

发布于 2022-04-11 17:26:01

我来晚了,但是如果您的数据库中的集合实际上名为documents,那么您的路径将如下所示:

--trigger-resource "projects/my-projectId/databases/(default)/documents/documents/{pushId}"

documents的第二个实例是您正在观察的集合的字面名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70717410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档