सीआई से परीक्षण और तैनाती
पहले संपादन से स्वचालित परिनियोजन तक एक व्यावहारिक लूप, जिसमें स्थानीय अनुकरण की सीमाएँ सामने बताई गई हैं।
1. इसे स्थानीय स्तर पर चलाएँ
aura functions serve आपकी फ़ाइल को Deno के साथ चलाता है और जब आप सहेजते हैं तो इसे पुनरारंभ करता है।
यह एक सादा Deno सर्वर है। प्लेटफ़ॉर्म की तुलना में, इसमें है:
- कोई प्लेटफ़ॉर्म हेडर नहीं।
x-aura-roleऔरx-aura-user-idअनुपस्थित हैं: प्राधिकरण शाखाओं का परीक्षण करने के लिए उन्हेंcurl -Hके साथ स्वयं भेजें। - कोई रहस्य नहीं। उन्हें अपने शेल में पास करें:
STRIPE_SECRET_KEY=sk_test_… aura functions serve checkout। - कोई सीमा नहीं. मेमोरी, टाइमआउट, बॉडी आकार और दर सीमाएं लागू नहीं होती हैं।
- सादा अनुरोध. आप फ़ंक्शन को सीधे कॉल करते हैं, इसलिए
pathऔरmethodआपकेcurlमें से हैं, SDK केinvokeविकल्प नहीं।
SDK इस सर्वर को लक्षित नहीं कर सकता, क्योंकि invoke प्लेटफ़ॉर्म रूट को कॉल करता है। किसी वास्तविक प्रोजेक्ट के विरुद्ध SDK पथ का परीक्षण करें, जैसा कि नीचे दिया गया है।
2. इसका वास्तविक परीक्षण करें
विकास के लिए एक प्रोजेक्ट बनाएं (देखें आपका पहला फ़ंक्शन), वहां फ़ंक्शन को तैनात करें, और एसडीके के माध्यम से परीक्षण करें। इसमें प्लेटफ़ॉर्म के पहचान हेडर, सीमाएँ और त्रुटि वर्ग शामिल हैं।
सुझावों:
- एक समर्पित प्रोजेक्ट का उपयोग करें, कभी उत्पादन न करें और इसकी चाबियाँ अपने सीआई रहस्यों में रखें।
- आह्वान दर सीमा 15 कॉल है और फिर 1 प्रति सेकंड प्रति आईपी है। अपने परीक्षणों को स्थान दें, या उन्हें क्रमिक रूप से चलाएँ।
3. सीआई से तैनाती
aura CLI macOS Apple सिलिकॉन पर npm से और अन्यत्र स्रोत से इंस्टॉल होता है, इसलिए HTTP API के साथ Linux CI कार्य सरल होता है। प्रति फ़ंक्शन एक POST तैनात करना, service_role कुंजी से प्रमाणित होता है। यह सटीक लूप एक वास्तविक प्रोजेक्ट के विरुद्ध चलाया गया था और फ़ंक्शन ने बाद में उत्तर दिया था।
तथ्य जो इसे हर धक्का पर चलाने को सुरक्षित बनाते हैं:
POSTकिसी मौजूदा फ़ंक्शन के कोड को प्रतिस्थापित करता है और अपने रहस्यों को रखता है, क्योंकि शरीर में कोईenv_varsनहीं है।- एक फ़ंक्शन एकल-फ़ाइल है: सापेक्ष आयात शिप नहीं किए जाते हैं। यदि आप स्थानीय मॉड्यूल का उपयोग करते हैं तो पहले बंडल करें।
- सर्वर पर कोई संस्करण इतिहास नहीं है. आपका Git इतिहास रोलबैक है: वापस जाने के लिए, कमिट वापस करें और CI को फिर से तैनात होने दें।
फिर निम्नलिखित कार्य में आपके द्वारा अभी-अभी तैनात किए गए प्रोजेक्ट के विरुद्ध अपना एकीकरण परीक्षण चलाएं।
4. विकास, मंचन और उत्पादन
एक परियोजना एक पर्यावरण है. प्रति परिवेश एक प्रोजेक्ट बनाएं, प्रत्येक का अपना URL और कुंजियाँ हों, और CI को लक्ष्य चुनने दें:
| पर्यावरण | परियोजना | कब तैनात किया गया |
|---|---|---|
| विकास | प्रति डेवलपर एक या साझा | मांग पर, एक शाखा से |
| मचान | my-app-staging | main पर हर धक्का |
| उत्पादन | my-app | स्टेजिंग परीक्षण पास होने के बाद एक रिलीज़ टैग |
AURA_PROJECT_URL और AURA_SERVICE_ROLE_KEY को GitHub वातावरण में संग्रहीत करें, और प्रत्येक प्रोजेक्ट में प्रत्येक फ़ंक्शन के रहस्यों को अलग से सेट करें। परियोजनाओं के बीच कुछ भी साझा नहीं किया जाता है.