2013-01-07 9 views
6

GAE अनुसूचित नौकरियों के लिए क्रॉन नौकरियां प्रदान करता है। किसी को http GET को निष्पादित करने से रोकने के लिए मैं कुछ सुरक्षा कैसे सेट करूं? निम्न उदाहरण में, मैं निम्नलिखित सेटिंग्स में काम निष्पादित करने के लिए एक ब्राउज़र की URL फ़ील्ड में कभी भी टाइप कर सकते हैं/UpdateData:Google ऐप इंजन: क्रॉन नौकरियों की सुरक्षा

cron: 
- description: daily update of the data in the datastore 
    url: /updateData 
    schedule: every day 00:00 
    timezone: ... 

उत्तर

6
क्या पॉल सी ने कहा कि यदि आप एक डेकोरेटर कि एक्स AppEngine-क्रॉन हेडर के रूप में नीचे बताया गया है की जाँच करता है बना सकते हैं के अलावा

। बीटीडब्ल्यू, हेडर को धोखा नहीं दिया जा सकता है, जिसका अर्थ है कि यदि एक अनुरोध जो क्रॉन जॉब से उत्पन्न नहीं हुआ है, तो यह हेडर है, ऐप इंजन हेडर का नाम बदल देगा। आप इस मामले में कार्यों के लिए एक समान विधि भी लिख सकते हैं, X-AppEngine-TaskName जांच सकते हैं।

""" 
Decorator to indicate that this is a cron method and applies request.headers check 
""" 
def cron_method(handler): 
    def check_if_cron(self, *args, **kwargs): 
     if self.request.headers.get('X-AppEngine-Cron') is None: 
      self.error(403) 
     else: 
      return handler(self, *args, **kwargs) 
    return check_if_cron 

और इसका इस्तेमाल के रूप में:

class ClassName(webapp2.RequestHandler): 
    @cron_method 
    def get(self): 
     .... 
6

आप के रूप में, हाथ के बल्लेबाज को

login: admin 

जोड़ने की जरूरत यहां विस्तृत: Securing URLS for Cron

ईजी

application: hello-cron 
version: 1 
runtime: python27 
api_version: 1 

handlers: 
- url: /updateData 
    script: reports.app 
    login: admin 
+0

मैं 'जोड़ा लॉगिन: app.yaml में admin': admin' और अब मेरी क्रॉन जॉब एक ​​403 –

+0

@ Alex75 यह' जोड़ने के लिए लॉगिन काम करता है प्राप्त करता है Google App Engine मानक वातावरण पर क्रॉन सेवा को सुरक्षित करने के लिए हैंडलर अनुभाग। लेकिन ऐप इंजन फ्लेक्स पर, यह बदल गया कि इस तरह के क्रॉन हैंडलर को सुरक्षित कैसे करें (PHP उदाहरण): $ _SERVER ['HTTP_X_APPENGINE_CRON'] की जांच करें और यदि यह सच है, तो अनुरोध ऐप इंजन क्रॉन सेवा से आ रहे हैं। –