ऑराबेस लोगो
aurabaseडॉक्स
डॉक्स›Edge Functions›Secrets and environment

रहस्य और पर्यावरण चर

स्ट्राइप कुंजी या किसी सेटिंग को कोड में लिखे बिना किसी फ़ंक्शन में कैसे पास किया जाए, और प्लेटफ़ॉर्म वास्तव में क्या सुरक्षा करता है।

6 मि॰ पढ़ें·स्तर मध्यवर्ती·12 अक्टू॰ 2026 पर संशोधित
यह अंग्रेजी पाठ फ़्रेंच मूल से स्वचालित रूप से उत्पन्न हुआ था और अभी तक इसकी समीक्षा नहीं की गई है।
यह पृष्ठ स्वचालित रूप से अनुवादित किया गया था. अंग्रेजी संस्करण प्रामाणिक है.
#
लिखना

1. एक वेरिएबल सेट करें

प्रत्येक वेरिएबल एक फ़ंक्शन से संबंधित है। वेरिएबल सेट करने के लिए service_role कुंजी की आवश्यकता होती है।

terminalbash
aura secrets set --function checkout STRIPE_SECRET_KEY=sk_live_… WEBHOOK_SECRET=whsec_…
aura secrets list --function checkout     # मान छिपाए गए हैं: STRIPE_SECRET_KEY sk_l***
aura secrets unset --function checkout WEBHOOK_SECRET
terminalbash
curl -X PUT "$AURA_URL/v1/functions/checkout/env" \
  -H "apikey: $AURA_SERVICE_ROLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vars":[{"key":"STRIPE_SECRET_KEY","value":"sk_live_…"}]}'

PUT /env आपके द्वारा भेजी गई सूची से वेरिएबल के पूरे सेट को से बदल देता है। aura secrets set और unset वर्तमान मान पढ़ें, आपके द्वारा नामित कुंजियाँ बदलें और परिणाम वापस लिखें।

पुनः तैनाती आपके रहस्य रखती है

aura functions deploy के साथ नया कोड परिनियोजित करने से वेरिएबल अछूते रह जाते हैं।

#
पढ़ना

2. इसे फंक्शन में पढ़ें

aurabase/functions/checkout/index.tstypescript
Deno.serve(async (req) => {
  const key = Deno.env.get('STRIPE_SECRET_KEY')
  if (!key) return new Response('STRIPE_SECRET_KEY is not set', { status: 500 })
  // ...स्ट्राइप को 'कुंजी' से कॉल करें
  return Response.json({ ok: true })
})

प्रत्येक आह्वान पर चर पढ़े जाते हैं: एक परिवर्तन अगली कॉल पर लागू होता है।

#
इंजेक्शन

3. प्लेटफ़ॉर्म जो वेरिएबल जोड़ता है

चरकीमत
AURABASE_PROJECT_IDप्रोजेक्ट आईडी. हमेशा सेट करें.
AURABASE_FUNCTION_NAMEफ़ंक्शन का नाम. हमेशा सेट करें.
AURABASE_URLप्लेटफ़ॉर्म URL, जब प्लेटफ़ॉर्म ऑपरेटर इसे परिभाषित करता है।
AURABASE_ANON_KEYएक प्लेटफ़ॉर्म कुंजी, जब ऑपरेटर इसे परिभाषित करता है।

आप इन नामों को ओवरराइड नहीं कर सकते. होस्ट का वातावरण आपके फ़ंक्शन के लिए दृश्यमान नहीं है: वास्तविक रन में Deno.env.get('PATH') ने undefined लौटा दिया।

किसी फ़ंक्शन से अपने स्वयं के प्रोजेक्ट को कॉल करने के लिए, उस फ़ंक्शन के रहस्य के रूप में एक service_role कुंजी संग्रहीत करें और इसे HTTP अनुरोध के apikey हेडर में भेजें। किसी उपयोगकर्ता की कुंजी को कभी भी अग्रेषित न करें, और ब्राउज़र में कभी भी service_role कुंजी न डालें।

#
सुरक्षा

4. एन्क्रिप्टेड क्या है

पथविश्राम के समय एन्क्रिप्ट किया गया
PUT /v1/functions/{name}/envहाँ, यदि सेवा में एक एन्क्रिप्शन कुंजी कॉन्फ़िगर की गई है (FN_ENV_ENCRYPTION_KEY, AES-256-GCM)। इसके बिना, मान भेजे गए के रूप में संग्रहीत किए जाते हैं और सेवा प्रारंभ में एक चेतावनी लॉग करती है।
aura secrets set / unsetनहीं: सीएलआई PATCH के माध्यम से लिखता है, जो भेजे गए मानों को संग्रहीत करता है।
तैनाती अनुरोध में env_varsनहीं, वही कारण.

हमारे स्थानीय परीक्षण में, PUT /env द्वारा लिखा गया मान फ़ंक्शन की परिभाषा द्वारा अपरिवर्तित लौटाया गया था, क्योंकि कोई कुंजी कॉन्फ़िगर नहीं की गई थी।

एन्क्रिप्शन पर भरोसा करने से पहले अपने प्लेटफ़ॉर्म ऑपरेटर से पूछें

रहस्य एन्क्रिप्ट किए गए हैं या नहीं यह परिनियोजन पर निर्भर करता है, और केवल PUT /env पथ ही उन्हें एन्क्रिप्ट कर सकता है। सीएलआई पथ उन्हें दिए गए अनुसार संग्रहीत करता है। जब तक सीएलआई PUT /env का उपयोग नहीं करता, तब तक उत्पादन रहस्यों के लिए उपरोक्त HTTP कॉल का उपयोग करें।

रहस्यों को वापस पढ़ना भी प्रतिबंधित है। GET /v1/functions/{name}/env डिक्रिप्टेड मान लौटाता है और, GET /v1/functions/{name} की तरह, service_role कुंजी की आवश्यकता होती है। एक सार्वजनिक कुंजी 403 प्राप्त करती है।

#
नियम

5. पालन करने योग्य नियम

  • index.ts में कभी भी किसी रहस्य को हार्ड-कोड न करें। किसी फ़ंक्शन का स्रोत कोड आपके प्रोजेक्ट में संग्रहीत किया जाता है और किसी भी service_role कॉलर को लौटा दिया जाता है।
  • कभी भी कोई रहस्य लॉग न करें. console.log का आउटपुट रनटाइम के लॉग में समाप्त होता है।
  • प्रति फ़ंक्शन एक वेरिएबल का उपयोग करें, सबसे संकीर्ण कुंजी के साथ जो काम करती है (आपके प्रदाता से एक प्रतिबंधित कुंजी, मास्टर कुंजी नहीं)।
  • नया मान सेट करके और कुछ भी पुनः नियोजित करके कुंजी को घुमाएँ: अगली कॉल इसका उपयोग करती है।