VPN hook koji izvozi krajnju točku API-ja mijenja okruženje procesa koje pokreće, a ne terminala koji je već bio otvoren kad se tunel podigao. Ta jedna razlika objašnjava većinu izvještaja „alat još uvijek poziva javnu krajnju točku“. Postoje dva upotrebljiva mjesta za postavku, a izbor ovisi o tome ko je troši i koliko se često mijenja. Usporedite ih prije nego dodate još jednu skriptu za pokretanje.

Dva mjesta na kojima postavka može živjeti

Prva je mogućnost prefiks na samoj naredbi: vrijednost postoji za taj jedan poziv i nestaje s njim. Druga je mogućnost izvoz unutar hooka za vezu, koji doseže svaki proces koji hook nakon toga pokrene. Razlikuju se po dosegu i trajanju, ne po sintaksi, i ta razlika odlučuje većinu kvarova.

PropertyPrefix on the commandExport from the hook
Who receives itThat invocation onlyChildren the hook starts
LifetimeUntil the process exitsUntil the hook's own session ends
LeakageScoped to one commandApplies to later commands in that session
Repeat costEvery invocationOnce per connection
Works for an open editorNo, unless the editor is started with itNo

Tablica čini hook jeftinim i skriva pravi račun: ona odabire privatnu krajnju točku i za naredbe koje nemaju veze sa zadatkom. Čitajte svaki redak kao ograničenje, a ne kao sklonost. Ako se krajnja točka mijenja po zadatku, prefiks pobjeđuje u preciznosti iako košta jedan pritisak tipke.

Zašto hook ne može dosegnuti već otvorenu ljusku

Varijable okruženja predaju se procesu kad se stvara slika procesa. Ljuska koja je počela prije veze zadržava primjerak koji je primila, a izvoz izvršen unutar hooka nije emitiranje svakom procesu na stroju. Nasljeđuju ga samo hookova vlastita djeca. Djeca same ljuske uzimaju ono što ljuska drži u trenutku njihova pokretanja, i zato ista naredba može raditi u jednom terminalu, a u drugom ne.

Isto vrijedi i za grafički uređivač. Njegov host za proširenja, ugrađeni terminal i pozadinski jezični poslužitelj odvojeni su pri pokretanju i drže vlastite primjerke. Ponovno otvaranje mape ne pokreće nužno tu djecu iznova, pa postavka koju ste dodali ipak nikad ne stigne.

Najjeftiniji je test ispisati varijablu s mjesta koje zakaže, a ne iz ljuske koja radi. Ako je proces koji zakaže počeo prije tunela, izvoz nikada nije imao priliku.

Oblik za pojedinu naredbu, ispisan

Prefiks drži izbor vidljivim u naredbi koja ga koristi, što pomaže kad se krajnja točka mijenja između zadataka:

env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool

Naredba je samo primjer: my-work-tool je zamjenski naziv, a INTERNAL_API nije VPN standard, pa umetnite dokumentiranu postavku programa koji doista pokrećete i svoj odobreni host. Ne stavljajte token ni lozinku u isti redak, jer završavaju u povijesti ljuske.

Kad više naredbi pripada jednom zadatku, kratka pregledana omotna skripta postavlja varijable i zatim ih pokreće. Time ostaje jedna definicija, a vrijednost ne postaje globalna za svaku buduću naredbu u terminalu.

Ponovno učitajte, ponovno pokrenite ili ostavite kako jest

Za alat koji već radi, radije upotrijebite njegovo vlastito ponovno učitavanje ili profil radnog prostora ako ga ima. Inače spremite rad i ponovno pokrenite komponentu koja čita postavku, a to je često jezični poslužitelj, ne prozor uređivača. Ponovno pokretanje prozora uz pretpostavku da su djeca krenula za njim jest ono zbog čega ponovno učitavanje izgleda kao da ne radi.

Prekid veze je zasebna odluka. Pauziranje, zatvaranje ili ponovno povezivanje pripada aplikaciji, a varijabla krajnje točke to ne kontrolira. Tretirajte varijablu kao konfiguraciju koja odabire adresu, a ne kao pravilo o tome koji se mrežni promet smije koristiti poslije, i te dvije stvari ostaju razdvojive.

Povezani članci