我有一个Firebase函数,它是由一个消息生成的PubSub。该函数要么使用消息,要么等待稍后使用它。
是否有一种方法可以从这个函数返回,而不承认消息,以便以后会是?
例如,我可以从云函数返回一个吗?如果我读得对,似乎表明这是可能的:
返回non-null functions.CloudFunction containing non-null functions.pubsub.Message A Cloud Function which you can export.
我已经使用本教程部署了简单的PubSub云函数触发器:
为了测试,我将大消息(超过8MB)推送到PubSub主题。
结果,云函数在日志中返回了以下错误消息:Function execution could not start, status: 'request too large'
问题是,Cloud Function开始不断地启动,产生持续的资源使用和日志消息。只有在我手动清除相关的PubSub主题后,它才会停止。
是否有防止此类行为的机制/配置?理想情况下,云函数触发器执行后,PubSub消息不会被再次拾取。
我正在尝试将云函数pubsub订阅转发到一个死信主题,如下所述:
我试过了
$ gcloud pubsub subscriptions update gcf-worker-topic --dead-letter-topic=gcf-worker-dead-letter-topic
并尝试在控制台中修改gcf-worker-topic订阅。两者都给了我相同的错误:
ERROR: (gcloud.pubsub.subscriptions.update) INVALID_ARGUMENT: The supplied AppEngine URL project does not match the s
我希望使用下面的语法创建一些计划好的云函数,以便在函数的源代码中定义计划:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
我知道,根据,这个云函数会自动创建一个发布/子主题,以根据定义的时间表触发该函数。文档警告不要手动编辑GCP控制台中的发布/子主题,因为它可能破坏调度。
他
我的应用程序的用户可以接收消息,我希望他们在文档消息创建后1小时收到通知推送。 下面是我的云函数: export const scheduler = functions.firestore
.document("profile/{uuid}/message/{messageId}")
.onCreate((change, context) => {
//code that will send a notification push in one hour
return true;
})
基于官方
我尝试使用"PubSub拉订阅“触发器创建一个云函数。
import base64
def hello_pubsub(event, context):
"""Triggered from a message on a Cloud Pub/Sub topic.
Args:
event (dict): Event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""