首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由防火墙触发的云功能,在部署时会更改路径。

由防火墙触发的云功能,在部署时会更改路径。
EN

Stack Overflow用户
提问于 2021-12-01 12:16:32
回答 1查看 152关注 0票数 0

我正在尝试部署一个用Python编写并与云控制台一起部署的云函数,每当将文档添加到子集合中时,就会触发云函数。

我已经将路径指定为users/{userID}/contactDump/{dumpID},这意味着每当向任何用户的contactDump子集合中添加一个新文档时,该函数都应该触发。

根据Google文档的说法,这是一个有效的路径结构。他们自己的文档有以下内容

users/{username}/addresses/{addressId}:有效触发器。监视所有地址文件。

但是,每当我部署函数(这很好),路径就会更改为{dumpID}

注:如果我试图部署在users/{userID}上触发的函数,在部署之后,路径会更改为{userID}

EN

回答 1

Stack Overflow用户

发布于 2021-12-17 12:58:14

此问题仅在云控制台中发生,通过创建具有以下设置的Firestore触发器的新函数,可以很容易地再现该问题:

一旦函数被部署,触发器部分显示的路径不是函数触发器创建期间添加的路径,而是显示的路径是{addressId}

在得到这个结果之后,它让我认为这是您面临的同一个问题,因为尽管使用了不同的事件类型,文档路径似乎被更改了,并且只显示了我们首先输入的路径的最后一部分,在本例中是{addressId}

为此,正如您所说的该函数运行良好,我希望让云函数数据使用来自云功能文档的API执行一个get请求,在请求参数中,我添加了云函数创建的详细信息。

在执行API调用之后,响应将包含具有完整触发路径的eventTrigger

在前面的示例中,结果是:

代码语言:javascript
复制
{
  "eventTrigger": {
    "eventType": "providers/cloud.firestore/eventTypes/document.create",
    "resource": "projects/<PROJECT_ID>/databases/(default)/documents/users/{username}/addresses/{addressId}",
    "service": "firestore.googleapis.com",
    "failurePolicy": {}
  }
}

响应中的“eventTrigger”包含原始路径users/{username}/addresses/{addressId},而不是控制台中显示的路径。

这使我认为,我们在云控制台中只看到缩短路径的原因并不意味着它已被更改,显然它只是在路径的最后一个“/”斜杠之后显示部分,尽管云函数中的路径更长。

因为这看起来像是控制台显示路径的问题,所以我已经引发了这个公共问题

如果需要恢复原始路径,可以使用API或gcloud工具:

代码语言:javascript
复制
gcloud functions describe FUNCTION_ID --format 'value(eventTrigger.resource)'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70184044

复制
相关文章

相似问题

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