समय पर फायरबेस के लिए क्लाउड फ़ंक्शंस?


104

मैं फायरबेस के लिए क्लाउड फ़ंक्शंस शेड्यूल करने का एक तरीका ढूंढ रहा हूं या दूसरे शब्दों में उन्हें एक विशिष्ट समय पर ट्रिगर करता हूं।

जवाबों:


113

अपडेट 2019-04-18

फायरबेस के माध्यम से क्लाउड फ़ंक्शंस पर अनुसूचित कोड को तैनात करने का एक बहुत ही सरल तरीका है।

आप या तो एक साधारण पाठ वाक्यविन्यास का उपयोग कर सकते हैं:

export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
    console.log('This will be run every 5 minutes!');
})

या अधिक लचीला क्रोन टेबल प्रारूप:

export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
    console.log('This will be run every day at 11:05 AM UTC!');
});

इसके बारे में अधिक जानने के लिए, देखें:

ध्यान दें कि आपके प्रोजेक्ट को काम करने के लिए ब्लेज़ प्लान पर होना चाहिए, इसलिए मैं संदर्भ के लिए नीचे वैकल्पिक विकल्प छोड़ रहा हूं।

यदि आप किसी अन्य ट्रिगर के निष्पादन के भीतर देरी से क्लाउड फंक्शन का एक सिंगल इनवोकेशन शेड्यूल करना चाहते हैं , तो आप इसे सेट करने के लिए क्लाउड टास्क का उपयोग कर सकते हैं । कैसे काम कर सकते हैं के एक विस्तृत उदाहरण के लिए इस लेख को पढ़ें

नीचे मूल उत्तर ...


अभी तक कोई अंतर्निहित रनट / क्रोन प्रकार ट्रिगर नहीं है।

फिलहाल, सबसे अच्छा विकल्प एक HTTP सेवा को समय-समय पर चालू करने के लिए बाहरी सेवा का उपयोग करना है। अधिक जानकारी के लिए फ़ंक्शन-नमूने रेपो में इस नमूने को देखें। PubSub या HTTPS के माध्यम से क्लाउड फ़ंक्शंस को ट्रिगर करने के लिए हाल ही में शुरू किए गए Google क्लाउड शेड्यूलर का उपयोग करें:

यहां छवि विवरण दर्ज करें

मैं Firebase ब्लॉग पर इस पोस्ट को पढ़ने की अत्यधिक सलाह देता हूं: How to Schedule (Cron) Jobs with Cloud Functions for Firebase and this video: एक HTTP ट्रिगर और क्रोन का उपयोग करके फायरबेस के लिए टाइमिंग क्लाउड फ़ंक्शंस

वह अंतिम लिंक क्लाउड फ़ंक्शंस को ट्रिगर करने के लिए cron-job.org का उपयोग करता है , और उन परियोजनाओं के लिए काम करता है जो एक मुफ्त योजना पर हैं। ध्यान दें कि यह किसी को भी प्राधिकरण के बिना आपके फ़ंक्शन को कॉल करने की अनुमति देता है, इसलिए आप कोड में ही कुछ दुरुपयोग संरक्षण तंत्र को शामिल करना चाह सकते हैं।


1
इसके आसपास कुछ नहीं बदला। इस तथ्य को शामिल करते हुए कि cron-job.orgजेन पोस्ट ब्लॉग पोस्ट में उपयोग करने के लिए स्वतंत्र है।
फ्रैंक वैन पफेलन

2
जेन के वीडियो को पदावनत के रूप में टैग किया गया है। तो क्या इसे करने का एक और तरीका है?
बी-एफजी

2
यह दृष्टिकोण आज भी उतना ही मान्य है जितना कि वीडियो (और ब्लॉग पोस्ट) बनाया गया था। वाक्य-विन्यास थोड़ा बदल गया है, लेकिन मुझे नहीं लगता कि यह विशिष्ट मामला इससे प्रभावित है। यदि आपको यह काम करने में परेशानी हो रही है, तो एक प्रश्न खोलें जो दिखाता है कि आपने पहले ही काम कर लिया है।
फ्रैंक वैन पफेलन

1
वाह, आखिरकार उन्होंने इसे बस करने का एक तरीका लागू किया! आखिरकार !!!! अपडेट के लिए धन्यवाद
schankam

1
क्लाउड शेड्यूलर पृष्ठ से: Each Cloud Scheduler job costs $0.10 (USD) per month"नौकरी" मान लेने का मतलब यह नहीं है कि प्रत्येक बार निर्धारित चीज़ फायर हो जाए, लेकिन प्रति टाइमर लागत? यानी हर मिनट चलने वाली नौकरी में केवल $ 0.10 खर्च होते हैं? (जो भी कॉल करता है, उसे छोड़कर)।
एरोन ऐश

12

आप क्या कर सकते हैं, एक AppEngine उदाहरण है कि क्रॉन नौकरी से शुरू हो जाता है और PubSub के लिए निकल जाता है। मैंने उस पर विशेष रूप से एक ब्लॉग पोस्ट लिखी है, जिसे आप देखना चाहते हैं:

https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html


1
प्रति घंटे एक बार होने वाली क्रोन नौकरी के लिए प्रति माह अनुमानित लागत क्या है?
एहतेशाम हसन

3
@ एहतेशाम हसन लगता है कि यह संभावित रूप से मुक्त है: cloud.google.com/free । वर्तमान में 28 उदाहरण घंटे / दिन मुफ्त; इसके अलावा, Google कंप्यूट इंजन का f1-माइक्रो इंस्टेंस w / लिनक्स रनिंग क्रोन मुफ्त में है।
बिट्सफ्लॉजिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.