Vigezo vya Mazingira na Siri ni Nini? Mwongozo Rahisi
Kigezo cha mazingira (environment variable) ni mpangilio wenye jina — kama DATABASE_URL au STRIPE_SECRET_KEY — ambao hupewa programu yako inapoendeshwa, badala ya kuandikwa ndani ya msimbo. Siri (secret) ni kigezo cha mazingira ambacho thamani yake lazima ibaki ya faragha: funguo ya API, nenosiri, au funguo ya kutia sahihi. Kuweka thamani hizi nje ya msimbo kunamaanisha unaweza kuzibadilisha bila kuhariri programu, kutumia thamani tofauti kwa majaribio na kwa wateja halisi, na kuzuia zisivuje unaposhiriki au kuchapisha msimbo wako.
Kwa nini ni muhimu unapojenga kwa AI
Mara tu programu yako inapofanya kitu chenye manufaa na huduma nyingine — kupokea malipo, kutuma barua pepe, kuita modeli ya AI — inahitaji funguo. Wajenzi wa programu za AI huomba funguo hizi mara kwa mara, na mahali funguo inapoishia ndipo kunapoamua kama programu yako ni salama.
Mambo mawili hutokea mara kwa mara kwenye programu zilizojengwa kwa AI:
- Funguo inabandikwa kwenye gumzo au msimbo. Kisha inaishia kwenye historia ya gumzo, faili za mradi, na kwenye kila export au hazina ya msimbo (repository). Yeyote anayeiona anaweza kutumia akaunti yako.
- Funguo inatumika kwenye kivinjari. Msimbo unaoita Stripe au OpenAI ukiendeshwa ndani ya ukurasa, funguo hutumwa kwa kila mgeni. Watu huangalia — na vichanganuzi vya kiotomatiki hutafuta funguo zilizo wazi kila wakati.
Kuelewa vigezo vya mazingira kunakuwezesha kuona yote mawili, na kuomba marekebisho.
Mfano wa kila siku: sefu ya hoteli
Msimbo wa programu yako ni kama chumba cha hoteli. Wageni (na wasafishaji, na yeyote unayempa kadi ya ufunguo) hupita humo. Hungeacha pasipoti yako juu ya meza.
Vigezo vya mazingira ni sefu ndani ya chumba. Chumba kinajua kwamba sefu ipo na jinsi ya kuifungua inapohitajika, lakini pasipoti haiko wazi. Na ukihamia chumba kingine — kutoka usanidi wako wa majaribio hadi tovuti yako ya moja kwa moja — unaweka pasipoti nyingine kwenye sefu ya chumba hicho, bila kukirekebisha upya.
Jinsi inavyofanya kazi
Msimbo wako unarejelea jina, si thamani. Kwenye JavaScript upande wa seva, hilo linaonekana kama process.env.STRIPE_SECRET_KEY. Programu inapoanza, jukwaa inapoiendesha hujaza thamani ya jina hilo. Badilisha thamani kwenye mipangilio ya jukwaa, anzisha upya au chapisha tena, na programu itatumia thamani mpya — bila mabadiliko ya msimbo.
Thamani zinatoka wapi inategemea mahali programu inapoendeshwa:
| Inapoendeshwa | Thamani zinahifadhiwa wapi |
|---|---|
| Kwenye kompyuta ya msanidi | Faili la ndani mara nyingi liitwalo .env, ambalo kamwe lisiwekwe kwenye git |
| Kwenye onyesho la kukagua la mjenzi wa AI | Paneli ya siri au mipangilio ya mradi |
| Kwenye jukwaa la kuchapisha | Mipangilio ya vigezo vya mazingira ya jukwaa hilo |
| Kwenye GitHub Actions au otomatiki nyingine | Hifadhi ya siri iliyosimbwa ya huduma husika |
Vigezo vya umma dhidi ya siri
Si kila kigezo cha mazingira ni siri. Inasaidia kuvigawa katika makundi mawili:
| Aina | Mifano | Je, kivinjari kinaweza kukiona? |
|---|---|---|
| Usanidi wa umma | Jina la tovuti, kitambulisho cha analytics cha umma, funguo ya publishable ya Stripe, swichi za vipengele | Ndiyo, hilo ni sawa |
| Siri | Funguo ya secret ya Stripe, funguo ya API ya OpenAI au Anthropic, kamba ya muunganisho wa hifadhidata, funguo ya mtoa barua pepe, siri ya kutia sahihi webhook | Kamwe |
Mifumo ya wavuti huweka mgawanyo huu wazi. Kwenye Vite, ni vigezo vyenye majina yanayoanza na VITE_ pekee vinavyojumuishwa kwenye msimbo wa kivinjari; kwenye Next.js, kiambishi ni NEXT_PUBLIC_. Hiyo ni kipengele cha usalama: chochote chenye viambishi hivyo kinaishia kwenye faili ambazo kila mgeni hupakua, kwa hiyo siri kamwe isipewe kiambishi chochote kati ya hivyo.
Mfano kamili: kitufe cha muhtasari wa AI
Unataka kitufe cha “Fupisha dokezo hili” kinachoita modeli ya AI.
Toleo lisilo salama: msimbo wa kitufe, unaoendeshwa kwenye kivinjari, unaita mtoa huduma wa AI moja kwa moja huku funguo ya API ikiwa imeandikwa ndani yake. Inafanya kazi kwenye onyesho la kukagua. Lakini pia inamaanisha mtu yeyote anaweza kufungua zana za msanidi za kivinjari, kunakili funguo, na kuendesha bili kubwa kwenye akaunti yako.
Toleo salama:
- Unaunda funguo kwa mtoa huduma wa AI na kuihifadhi kama siri yenye jina
OPENAI_API_KEY(au sawa na hilo) kwenye mipangilio ya mradi wako. - Backend inapata njia,
POST /api/summarise, inayosomaprocess.env.OPENAI_API_KEY, inakagua kwamba mtumiaji ameingia, kisha inamwita mtoa huduma. - Kitufe kinaita njia yako, si mtoa huduma. Kivinjari hakiwahi kuona funguo.
- Unaongeza siri hiyo hiyo kwenye mipangilio ya programu iliyochapishwa na kuichapisha tena, ili tovuti ya moja kwa moja nayo iwe nayo.
Mtindo huo — kivinjari kinaita seva yako, seva yako inashika funguo na kuita huduma — unatumika kwa malipo, barua pepe, ramani na kila API nyingine inayolipiwa. Mwongozo wa kutumia LLM APIs unafafanua kesi ya AI kwa kina zaidi.
Istilahi muhimu
- Faili la
.env: faili la maandishi lenye mistari yaJINA=thamanilinalotumika wakati wa usanidi wa ndani. Liorodheshe kwenye.gitignoreili lisiwekwe kwenye git. .env.example: nakala yenye majina pekee bila thamani halisi, inayowekwa kwenye git ili wengine wajue vigezo vya kuweka.- Kubadilisha (rotate): kubadilisha siri kwa mpya na kufuta ile ya zamani.
- Wigo / ruhusa: watoa huduma wengi hukuruhusu kuunda funguo zinazoweza kufanya kazi fulani tu. Funguo inayoweza kutuma barua pepe pekee ina hatari ndogo kuliko inayoweza kufanya kila kitu.
- Funguo za majaribio dhidi ya za moja kwa moja: watoa huduma kama Stripe hukupa funguo tofauti za majaribio na za pesa halisi. Tumia funguo za majaribio hadi uzindue.
- Siri ya kutia sahihi: siri inayotumika kuthibitisha kwamba ujumbe, kama webhook, kweli umetoka kwa mtumaji.
Makosa ya kawaida na dhana potofu
- “Hazina yangu ni ya faragha, kwa hiyo funguo ndani yake ni sawa.” Hazina za faragha hushirikiwa, kunakiliwa (fork), kusafirishwa na kuvutwa kwenye kompyuta za mkononi. Funguo bado hazipaswi kuwepo hapo. Ukiunganisha mradi na GitHub, hakikisha hakuna faili la
.envlililojumuishwa. - “Niliifuta, kwa hiyo imepotea.” Git huhifadhi historia, na kumbukumbu za gumzo huhifadhi ujumbe. Funguo ikiwahi kuvuja, ibadilishe.
- Kutumia kiambishi cha umma kwenye siri.
VITE_OPENAI_KEYhuweka funguo yako kwenye bundle ya kivinjari. - Kusahau kuchapisha tena. Kubadilisha kigezo kwenye mipangilio kwa kawaida huanza kutumika tu baada ya programu kuanzishwa upya au kuchapishwa tena.
- Funguo moja kwa kila kitu. Funguo tofauti kwa majaribio na za moja kwa moja, na kwa kila programu, huruhusu kufuta moja bila kuvunja zingine.
- Hakuna kikomo cha matumizi. Kwa API zinazolipiwa, weka bajeti au kikomo kwenye dashibodi ya mtoa huduma endapo funguo itavuja.
Waombe nini mjenzi wako wa AI
- “Soma funguo ya siri ya Stripe kutoka kwenye kigezo cha mazingira kiitwacho
STRIPE_SECRET_KEY. Itumie kwenye seva pekee.” - “Hakikisha hakuna siri inayotumika kwenye msimbo wa upande wa mteja au inayopewa kiambishi cha
VITE_/NEXT_PUBLIC_.” - “Tengeneza
.env.exampleinayoorodhesha kila kigezo ambacho programu inahitaji, bila thamani, na hakikisha.envimetengwa na git.” - “Kagua faili za frontend zilizojengwa kuona kama kuna mfuatano wowote unaofanana na funguo ya API.”
Orodha yetu ya ukaguzi wa usalama kwa programu zilizojengwa kwa AI inashughulikia siri pamoja na ukaguzi mwingine unaostahili kufanywa kabla ya uzinduzi.
Siri kwenye Mythex
Kwenye Mythex, siri ni vigezo vya mazingira vya mradi vinavyowekwa kwenye onyesho la kukagua na kwenye programu yako iliyochapishwa. Unaviongeza chini ya mipangilio ya mradi → Secrets au kwa /secrets kwenye gumzo. Wakala anapohitaji funguo huonyesha kadi ya siri kwenye gumzo, kwa hiyo thamani huingia kwenye sehemu ya fomu badala ya kuonekana kwenye mazungumzo. Ukibadilisha siri ya programu ya moja kwa moja, chapisha tena ili uchapishaji uchukue mabadiliko. Export za mradi hazijumuishi siri, na faili za .env zinazoingizwa huondolewa ili uziongeze tena kwenye mipangilio. Angalia vigezo vya mazingira na siri na siri kwenye gumzo kwenye nyaraka.
Maswali
Kigezo cha mazingira ni nini?
Kigezo cha mazingira ni mpangilio wenye jina, kama STRIPE_SECRET_KEY au DATABASE_URL, unaopewa programu inapoendeshwa badala ya kuandikwa ndani ya msimbo wake. Msimbo uleule unaweza kutumia thamani tofauti kwenye usanidi wa majaribio na kwenye uzalishaji.
Tofauti kati ya kigezo cha mazingira na siri ni ipi?
Siri ni kigezo cha mazingira ambacho thamani yake lazima ibaki ya faragha, kama funguo ya API, nenosiri la hifadhidata au siri ya kutia sahihi webhook. Vigezo vingine vya mazingira, kama jina la tovuti au swichi ya kipengele, vinaweza kuwa vya umma.
Je, ni salama kuweka funguo za API kwenye frontend yangu?
Hapana. Chochote kilicho kwenye msimbo wa frontend hupakuliwa kwenye kivinjari cha kila mgeni na kinaweza kusomwa. Funguo za siri lazima zitumike kwenye seva pekee, na kivinjari kiite seva yako, ambayo ndiyo huita mtoa huduma.
Nifanye nini ikiwa funguo yangu ya API itavuja?
Ifute au ibadilishe kwa mtoa huduma mara moja, tengeneza mpya, sasisha mahali ambapo programu yako inahifadhi siri, kisha chapisha tena. Kufuta funguo kutoka kwenye msimbo wako au historia ya gumzo hakutoshi, kwa sababu nakala zinaweza kuwa tayari zipo.