வழிகாட்டிகள்

Environment Variables மற்றும் Secrets என்றால் என்ன? எளிய வழிகாட்டி

சுற்றுச்சூழல் மாறி (environment variable) என்பது ஒரு பெயரிட்ட அமைப்பு. எடுத்துக்காட்டாக DATABASE_URL அல்லது STRIPE_SECRET_KEY. இது உங்கள் செயலி இயங்கும்போது அதற்கு வழங்கப்படுகிறது; குறியீட்டில் நேரடியாக எழுதப்படுவதில்லை. Secret என்பது மதிப்பு தனிப்பட்டதாக இருக்க வேண்டிய environment variable: API key, கடவுச்சொல், கையொப்ப key. இந்த மதிப்புகளைக் குறியீட்டுக்கு வெளியே வைப்பதால், செயலியைத் திருத்தாமலேயே அவற்றை மாற்றலாம், சோதனைக்கும் உண்மையான வாடிக்கையாளர்களுக்கும் வெவ்வேறு மதிப்புகளைப் பயன்படுத்தலாம், குறியீட்டைப் பகிரும்போதோ வெளியிடும்போதோ அவை கசிவதைத் தடுக்கலாம்.

AI கருவிகளுடன் உருவாக்கும்போது ஏன் இது முக்கியம்

உங்கள் செயலி வேறு சேவையுடன் பயனுள்ள வேலை செய்யத் தொடங்கியதும் (பணம் பெறுதல், மின்னஞ்சல் அனுப்புதல், AI மாதிரியை அழைத்தல்), அதற்கு ஒரு key தேவைப்படும். AI app builder-கள் இந்த keys-ஐ அடிக்கடி கேட்கின்றன; அந்த key எங்கே போய்ச் சேர்கிறது என்பதைப் பொறுத்தே உங்கள் செயலி பாதுகாப்பானதா என்பது தீர்மானமாகிறது.

AI-இல் உருவாக்கப்பட்ட செயலிகளில் பொதுவாக இரண்டு தவறுகள் நடக்கின்றன:

  • Key chat-இலோ குறியீட்டிலோ ஒட்டப்படுகிறது. அது பிறகு chat வரலாறு, திட்டக் கோப்புகள், ஏற்றுமதி மற்றும் repository எல்லாவற்றிலும் தங்கிவிடும். அதைப் பார்க்கும் எவரும் உங்கள் கணக்கைப் பயன்படுத்தலாம்.
  • Key browser-இல் பயன்படுத்தப்படுகிறது. Stripe அல்லது OpenAI-ஐ அழைக்கும் குறியீடு page-இல் இயங்கினால், key ஒவ்வொரு பார்வையாளருக்கும் அனுப்பப்படும். மக்கள் பார்க்கிறார்கள்; வெளிப்படுத்தப்பட்ட keys-ஐத் தேடும் தானியங்கி scanner-களும் தொடர்ந்து தேடுகின்றன.

Environment variables பற்றிய புரிதல் இரண்டையும் கண்டறிந்து அதற்கான திருத்தத்தைக் கேட்க உதவுகிறது.

ஒரு அன்றாட ஒப்புமை: ஹோட்டல் பெட்டகம்

உங்கள் செயலியின் குறியீடு ஒரு ஹோட்டல் அறை போன்றது. விருந்தினர்களும் துப்புரவாளர்களும் நீங்கள் அட்டை கொடுத்த எவரும் அதில் நடக்கிறார்கள். கடவுச்சீட்டை மேசையில் வைக்க மாட்டீர்கள்.

Environment variables அறையில் உள்ள பெட்டகம் போன்றவை. அறைக்கு பெட்டகம் இருப்பதும் அதை எப்படித் திறப்பது என்பதும் தெரியும், ஆனால் கடவுச்சீட்டு வெளியே கிடக்காது. நீங்கள் வேறு அறைக்கு மாறினால் (சோதனை அமைப்பிலிருந்து நேரடி தளத்திற்கு), அந்த அறையின் பெட்டகத்தில் வேறு கடவுச்சீட்டை வைக்கிறீர்கள், அறையை மாற்ற வேண்டியதில்லை.

இது எப்படி வேலை செய்கிறது

உங்கள் குறியீடு மதிப்பைக் குறிப்பிடுவதில்லை, பெயரையே குறிப்பிடுகிறது. சர்வரில் JavaScript-இல் அது process.env.STRIPE_SECRET_KEY போல் தெரியும். செயலி தொடங்கும்போது, அது இயங்கும் தளம் அந்தப் பெயருக்கான மதிப்பை நிரப்புகிறது. தளத்தின் அமைப்புகளில் மதிப்பை மாற்றி, மறுதொடக்கம் அல்லது மீண்டும் deploy செய்தால், குறியீட்டு மாற்றம் இல்லாமலேயே செயலி புதிய மதிப்பைப் பயன்படுத்தும்.

இயங்கும் இடத்தைப் பொறுத்து மதிப்புகள் எங்கிருந்து வருகின்றன என்பது மாறுபடும்:

எங்கே இயங்குகிறதுமதிப்புகள் எங்கே வைக்கப்படுகின்றன
டெவலப்பரின் laptopபொதுவாக .env என்ற உள்ளூர் கோப்பு; அது git-இல் ஒருபோதும் commit செய்யப்படக்கூடாது
AI builder-இன் previewதிட்டத்தின் secrets அல்லது settings panel
hosting தளம்அந்த தளத்தின் environment variables அமைப்புகள்
GitHub Actions அல்லது பிற automationசேவையின் சொந்த குறியாக்கப்பட்ட secrets சேமிப்பகம்

பொது மாறிகள் மற்றும் ரகசிய மாறிகள்

ஒவ்வொரு environment variable-உம் ரகசியமல்ல. அவற்றை இரண்டு குழுக்களாகப் பிரித்துப் பார்ப்பது உதவும்:

வகைஎடுத்துக்காட்டுகள்Browser அதைப் பார்க்க முடியுமா?
பொது அமைப்புதளத்தின் பெயர், பொது analytics ID, Stripe publishable key, feature switch-கள்ஆம், அது பரவாயில்லை
SecretsStripe secret key, OpenAI அல்லது Anthropic API key, database இணைப்பு சரம், மின்னஞ்சல் provider key, webhook கையொப்ப secretஒருபோதும் இல்லை

Web framework-கள் இந்தப் பிரிவை வெளிப்படையாகக் காட்டுகின்றன. Vite-இல் VITE_ என்ற முன்னொட்டுடன் தொடங்கும் மாறிகள் மட்டுமே browser குறியீட்டில் சேர்க்கப்படுகின்றன; Next.js-இல் அது NEXT_PUBLIC_. இது ஒரு பாதுகாப்பு அம்சம்: அந்த முன்னொட்டு உள்ள அனைத்தும் ஒவ்வொரு பார்வையாளரும் பதிவிறக்கும் கோப்புகளில் சென்றுவிடும், அதனால் ஒரு secret-க்கு அந்த முன்னொட்டைக் கொடுக்கவே கூடாது.

ஒரு வேலை செய்யப்பட்ட எடுத்துக்காட்டு: AI சுருக்க பொத்தான்

ஒரு AI மாதிரியை அழைக்கும் "இந்தக் குறிப்பைச் சுருக்கு" பொத்தான் வேண்டும் என்று வைத்துக்கொள்ளுங்கள்.

பாதுகாப்பற்ற பதிப்பு: பொத்தானின் குறியீடு browser-இல் இயங்கி, API key-ஐ அதற்குள்ளேயே எழுதி நேரடியாக AI provider-ஐ அழைக்கிறது. Preview-இல் அது வேலை செய்யும். ஆனால் யார் வேண்டுமானாலும் browser-இன் developer tools-ஐத் திறந்து key-ஐ நகலெடுத்து, உங்கள் கணக்கில் கட்டணம் உயர்த்தலாம்.

பாதுகாப்பான பதிப்பு:

  1. AI provider-இல் key-ஐ உருவாக்கி, உங்கள் திட்ட அமைப்புகளில் OPENAI_API_KEY (அல்லது அதைப் போன்ற) என்ற பெயரில் secret-ஆக சேமியுங்கள்.
  2. Backend-இல் POST /api/summarise route இருக்கும்; அது process.env.OPENAI_API_KEY-ஐ வாசிக்கும், பயனர் உள்நுழைந்திருக்கிறாரா என்று சரிபார்க்கும், பின்னர் provider-ஐ அழைக்கும்.
  3. பொத்தான் provider-ஐ அல்ல, உங்கள் route-ஐ அழைக்கும். Browser key-ஐ ஒருபோதும் பார்ப்பதில்லை.
  4. அதே secret-ஐ வெளியிடப்பட்ட செயலியின் அமைப்புகளிலும் சேர்த்து மீண்டும் deploy செய்யுங்கள், அதனால் நேரடி தளத்திலும் அது இருக்கும்.

இந்த வடிவம், அதாவது browser உங்கள் சர்வரை அழைக்கும், சர்வர் key-ஐ வைத்துக்கொண்டு சேவையை அழைக்கும், பணம், மின்னஞ்சல், வரைபடம் மற்றும் மற்ற ஒவ்வொரு கட்டண API-க்கும் பொருந்தும். AI நிகழ்வுக்கான ஆழமான விளக்கம் LLM API-களை எப்படிப் பயன்படுத்துவது வழிகாட்டியில் உள்ளது.

முக்கிய சொற்கள்

  • .env கோப்பு: உள்ளூர் மேம்பாட்டில் பயன்படும் NAME=value வரிகளின் உரைக் கோப்பு. git-இல் commit ஆகாமல் இருக்க .gitignore-இல் சேர்க்கவும்.
  • .env.example: உண்மையான மதிப்புகள் இல்லாமல், பெயர்கள் மட்டும் உள்ள நகல். மற்றவர்கள் எந்த மாறிகளை அமைக்க வேண்டும் என்று அறிய இது commit செய்யப்படுகிறது.
  • Rotate: ஒரு secret-ஐ புதியதுடன் மாற்றி பழையதை ரத்து செய்வது.
  • Scope / அனுமதிகள்: பல provider-கள் சில செயல்களை மட்டும் செய்யக்கூடிய keys உருவாக்க அனுமதிக்கின்றன. மின்னஞ்சல் அனுப்ப மட்டும் முடிந்த key, எல்லாம் செய்யக்கூடிய key-ஐ விடக் குறைவான ஆபத்தானது.
  • சோதனை vs நேரடி keys: Stripe போன்ற provider-கள் சோதனைக்கும் உண்மையான பணத்துக்கும் தனித்தனி keys தருகின்றன. தொடங்கும் வரை சோதனை keys-ஐப் பயன்படுத்துங்கள்.
  • Signing secret: ஒரு செய்தி, எடுத்துக்காட்டாக webhook, உண்மையில் அனுப்புநரிடமிருந்து வந்ததா என்று சரிபார்க்கப் பயன்படும் secret.

பொதுவான தவறுகளும் தவறான கருத்துகளும்

  • "என் repository தனிப்பட்டது, அதனால் அதில் keys இருப்பது சரி." தனிப்பட்ட repository-களும் பகிரப்படுகின்றன, fork செய்யப்படுகின்றன, export செய்யப்படுகின்றன, laptop-களுக்கு clone ஆகின்றன. Keys அங்கே இருக்கக் கூடாது. ஒரு திட்டத்தை GitHub-உடன் இணைத்தால், எந்த .env கோப்பும் சேர்க்கப்படவில்லை என்று சரிபாருங்கள்.
  • "நீக்கிவிட்டேன், அதனால் போய்விட்டது." Git வரலாற்றை வைத்துக்கொள்கிறது; chat பதிவுகளும் செய்திகளை வைத்துக்கொள்கின்றன. ஒரு key ஒருமுறை வெளிப்பட்டிருந்தால், அதை rotate செய்யுங்கள்.
  • Secret-க்கு பொது முன்னொட்டு பயன்படுத்துவது. VITE_OPENAI_KEY உங்கள் key-ஐ browser bundle-இல் வைக்கும்.
  • மீண்டும் deploy செய்ய மறப்பது. அமைப்புகளில் ஒரு மாறியை மாற்றினால், பொதுவாக செயலி மறுதொடக்கம் ஆன பிறகோ மீண்டும் வெளியிட்ட பிறகோதான் அது நடைமுறைக்கு வரும்.
  • எல்லாவற்றுக்கும் ஒரே key. சோதனைக்கும் நேரடிக்கும், ஒவ்வொரு செயலிக்கும் தனித்தனி keys வைத்திருந்தால், மற்றவற்றை உடைக்காமல் ஒன்றை ரத்து செய்யலாம்.
  • செலவு வரம்பு இல்லாதது. கட்டணச் API-களுக்கு, key கசிந்தால் என்ற பாதுகாப்புக்காக provider dashboard-இல் பட்ஜெட் அல்லது வரம்பை அமைக்கவும்.

AI கருவியிடம் என்ன கேட்க வேண்டும்

  • "STRIPE_SECRET_KEY என்ற environment variable-இலிருந்து Stripe secret key-ஐ வாசியுங்கள். சர்வரில் மட்டும் பயன்படுத்துங்கள்."
  • "எந்த secret-உம் client-side குறியீட்டில் பயன்படுத்தப்படவில்லை என்றும் அதற்கு VITE_ / NEXT_PUBLIC_ முன்னொட்டு கொடுக்கப்படவில்லை என்றும் உறுதி செய்யுங்கள்."
  • "செயலிக்குத் தேவைப்படும் ஒவ்வொரு மாறியையும் மதிப்புகள் இல்லாமல் பட்டியலிடும் .env.example உருவாக்குங்கள்; .env git-இல் புறக்கணிக்கப்படுவதை உறுதி செய்யுங்கள்."
  • "கட்டப்பட்ட frontend கோப்புகளில் API key போலத் தோன்றும் ஏதாவது சரம் உள்ளதா என்று சரிபாருங்கள்."

வெளியீட்டுக்கு முன் ஓட்ட வேண்டிய மற்ற சோதனைகளுடன் secrets பற்றியும் AI-இல் உருவாக்கப்பட்ட செயலிகளுக்கான பாதுகாப்புப் பட்டியல் விளக்குகிறது.

Mythex-இல் Secrets

Mythex-இல் secrets என்பவை திட்டத்தின் environment variables. அவை preview sandbox-இலும் வெளியிட்ட செயலியிலும் வழங்கப்படுகின்றன. திட்ட அமைப்புகள் → Secrets என்பதின் கீழ் அல்லது chat-இல் /secrets மூலம் சேர்க்கலாம். Agent-க்கு ஒரு key தேவைப்படும்போது, chat-இல் ஒரு secrets அட்டை காட்டப்படும்; அதனால் மதிப்பு செய்தி பதிவில் அல்ல, ஒரு படிவப் புலத்தில் உள்ளிடப்படும். நேரடி செயலிக்கான secret-ஐ மாற்றினால், deploy அதை எடுத்துக்கொள்ள மீண்டும் வெளியிடுங்கள். திட்ட export-களில் secrets இருக்காது; இறக்குமதி செய்யப்படும் .env கோப்புகளிலிருந்து அவை நீக்கப்படும், அதனால் அமைப்புகளில் மீண்டும் சேர்க்க வேண்டும். ஆவணங்களில் environment variables மற்றும் secrets மற்றும் chat-இல் secrets பார்க்கவும்.

கேள்விகள்

Environment variable என்றால் என்ன?

Environment variable என்பது STRIPE_SECRET_KEY அல்லது DATABASE_URL போன்ற பெயரிட்ட அமைப்பு. நிரல் இயங்கும்போது அதற்கு இது வழங்கப்படுகிறது; அதன் குறியீட்டில் நேரடியாக எழுதப்படுவதில்லை. அதனால் அதே குறியீடு development மற்றும் production சூழல்களில் வெவ்வேறு மதிப்புகளைப் பயன்படுத்த முடியும்.

Environment variable மற்றும் secret இடையே என்ன வேறுபாடு?

Secret என்பது மதிப்பு தனிப்பட்டதாக இருக்க வேண்டிய environment variable: API key, database கடவுச்சொல், webhook கையொப்ப key. தளத்தின் பெயர் அல்லது feature switch போன்ற மற்றவை பொதுவானவையாக இருக்கலாம்.

API keys-ஐ frontend-இல் வைப்பது பாதுகாப்பானதா?

இல்லை. Frontend குறியீட்டில் உள்ள அனைத்தும் ஒவ்வொரு பார்வையாளரின் browser-க்கும் பதிவிறக்கப்படும்; அதை யார் வேண்டுமானாலும் படிக்கலாம். Secret keys சர்வரில் மட்டுமே பயன்படுத்தப்பட வேண்டும்; browser உங்கள் சர்வரை அழைக்க வேண்டும், பின்னர் சர்வர் provider-ஐ அழைக்க வேண்டும்.

என் API key கசிந்தால் என்ன செய்ய வேண்டும்?

உடனடியாக provider-இல் அந்த key-ஐ ரத்து செய்யுங்கள் அல்லது மாற்றுங்கள், புதிய key உருவாக்குங்கள், உங்கள் பயன்பாடு secrets-ஐ சேமிக்கும் இடத்தில் அதைப் புதுப்பியுங்கள், பின்னர் மீண்டும் deploy செய்யுங்கள். குறியீட்டிலிருந்தோ chat வரலாற்றிலிருந்தோ key-ஐ நீக்குவது மட்டும் போதாது, ஏனெனில் நகல்கள் ஏற்கனவே இருக்கக்கூடும்.

Mythex · Pricing · AI மூலம் எதையும் உருவாக்குங்கள் · இணையதளம் மற்றும் ஆப் டெம்ப்ளேட்கள் · Mythex ஒப்பீடு · AI ஆப் உருவாக்கச் சொல்லகராதி · இலவச AI ஆப் உருவாக்கக் கருவிகள் · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)