Un gancho de VPN que exporta un extremo de API cambia o contorno dos procesos que inicia, non o da terminal que xa estaba aberta cando subiu o túnel. Esa única distinción explica a maioría dos informes «a ferramenta segue chamando o extremo público». Hai dous sitios viables para poñer o axuste, e a elección depende de quen o consome e de cada canto cambia. Compáreos antes de engadir outro script de arrinque.

Dous sitios onde pode vivir o axuste

A opción un é un prefixo no propio comando: o valor existe para esa única invocación e desaparece con ela. A opción dous é unha exportación dentro do gancho de conexión, que chega a cada proceso que o gancho inicie despois dese punto. Diferéncianse en alcance e duración, non en sintaxe, e esa diferenza decide a maioría dos fallos.

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

A táboa fai que o gancho pareza barato e esconde a factura real: tamén selecciona un extremo privado para comandos que non teñen nada que ver coa tarefa. Lea cada fila como unha restrición e non como unha preferencia. Se o extremo cambia por tarefa, o prefixo gaña en precisión aínda que custe unha pulsación.

Por que o gancho non pode chegar a unha consola xa aberta

As variables de contorno entréganse a un proceso cando se crea a imaxe do proceso. Unha consola que arrincou antes da conexión conserva a copia que recibiu, e unha exportación executada dentro do gancho non é unha difusión a cada proceso da máquina. Só a herdan os fillos propios do gancho. Os fillos propios dunha consola toman o que a consola ten no momento de arrincar, e por iso o mesmo comando pode funcionar nunha terminal e fallar noutra.

O mesmo vale para un editor gráfico. O seu host de extensións, a súa terminal integrada e o seu servidor de linguaxe en segundo plano bifurcáronse ao arrincar e conservan as súas propias copias. Reabrir un cartafol non reinicia necesariamente eses fillos, así que o axuste que engadiu segue sen chegar nunca.

A proba máis barata é imprimir a variable desde o sitio que falla, non desde a consola que funciona. Se o proceso que falla arrincou antes do túnel, a exportación nunca tivo ocasión.

A forma por comando, escrita

Un prefixo mantén a elección visible no comando que a usa, o que axuda cando o extremo cambia entre tarefas:

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

O comando é ilustrativo: my-work-tool é un marcador de posición e INTERNAL_API non é un estándar de VPN, así que substitúa polo axuste documentado do programa que realmente executa e polo seu propio host aprobado. Non poña un token nin un contrasinal na mesma liña, porque acaban no historial da consola.

Cando varios comandos pertencen a unha soa tarefa, un script envoltorio curto e revisado define as variables e logo iníciaos. Así mantense unha soa definición sen volver o valor global para cada comando futuro na terminal.

Recargue, reinicie ou déixeo estar

Para unha ferramenta que xa se executa, prefira a súa propia recarga ou o seu perfil de espazo de traballo cando o teña. Se non, garde o traballo e reinicie o compoñente que le o axuste, que a miúdo é un servidor de linguaxe e non a xanela do editor. Reiniciar a xanela e supoñer que os procesos fillos a seguiron é a razón de que unha recarga pareza non funcionar.

A desconexión é unha decisión á parte. Pausar, pechar ou reconectar pertence á aplicación, e a variable do extremo non o controla. Trate a variable como configuración que escolle un enderezo, non como unha regra sobre que tráfico de rede se pode usar despois, e as dúas cuestións seguen sendo separables.

Artigos relacionados