Pse një Apps Script nuk arrin aplikacionin tënd të brendshëm përmes VPN
Apps Script ekzekutohet në rrjetin e Google, jo në laptopin që mban VPN-në. Dizajno rrugën e të dhënave për makinën që dërgon kërkesën.
Paneli hapet mirë në shfletuesin e laptopit, por i njëjti skript i fletëllogaritjes dështon me një gabim adrese të padisponueshme. Ndezja ose fikja e VPN-së nuk ndryshon asgjë, sepse kërkesa nuk e lë kurrë laptopin. Apps Script ekzekutohet në infrastrukturën e Google dhe hap lidhjen e vet prej andej. Ky fakt i vetëm vendos të gjithë dizajnin.
Ndaj dy pyetje përpara se të ndryshosh gjë: cila makinë dërgon kërkesën dhe çfarë kredenciali pranon marrësi.
Kërkesa nuk fillon kurrë në laptopin tënd
Një skedë e shfletuesit dërgon nga laptopi, përmes përshtatësit VPN, prapashtesës së brendshme DNS dhe në nënrrjetin privat. UrlFetchApp dërgon nga një host i administruar nga Google, kështu që sheh zgjidhësit e Google, adresat e daljes së Google dhe asnjë nga rrugët e tua split-tunnel. Dy rrugët ndajnë një dokument fletëllogaritjeje, jo një vendndodhje rrjeti. Në regjistrin e aksesit të aplikacionit, përpjekja e skriptit shfaqet si një adresë Google dhe jo si adresë nga grupi i VPN-së, dhe ky është konfirmimi më i shpejtë që do të marrësh.
Prandaj rregullimet lokale nuk bëjnë gjë. Drejtimi i laptopit në një zgjidhës tjetër, rinisja e klientit të VPN-së ose shtimi i një zëri në hosts ndryshon rrugën e shfletuesit dhe e lë rrugën e skriptit pikërisht si ishte.
Çfarë përjashton kjo
Një pikë fundore vetëm e brendshme nuk arrihet nga Apps Script, dhe lista e IP-ve të lejuara është një zëvendësues i dobët i kontrollit të aksesit në këtë pozicion. Gama e daljes së Google është e gjerë, e ndarë me klientë të tjerë dhe e pamundur të lidhet me një skript të vetëm. Referenca e UrlFetchApp thotë se kërkesat vijnë nga grupi i IP-ve të Google, që është versioni autoritativ i atij pretendimi. Hapja e aplikacionit të brendshëm për ato gama lë të hyjë trafik që nuk mund t’ia atribuosh askujt.
Sesionet e shfletuesit sillen njësoj. Një cookie ose një sesion SSO në shfletuesin e laptopit nuk udhëton me kërkesën, e cila është një klient i ri HTTPS pa gjendje sesioni. Çdo gjë që varet nga një ridrejtim SSO i shfletuesit përfundon në atë ridrejtim dhe jo në të dhënat e tua.
Dy forma të zbatueshme
Forma e parë i jep skriptit një API të miratuar. Publiko shërbimin e brendshëm pas një porte që vërteton identitetin e thirrësit dhe pastaj lëre skriptin të paraqesë një kredencial që porta e pranon, si një token llogarie shërbimi. Në Apps Script kjo do të thotë një bibliotekë OAuth2 ose ScriptApp.getOAuthToken(), plus një listë identitetesh thirrësi të lejuara në anën e API-së në vend të një liste IP-sh.
Forma e dytë kthen drejtimin. Një punë e brendshme pyet sistemin privat dhe publikon një rezultat të kontrolluar në një Sheet, një objekt Cloud Storage ose një tabelë BigQuery që skripti lexon. Një punë Cloud Run, një planifikues lokal ose një hap ekzistues ETL mund të jenë të gjitha ajo punë, dhe asnjëra prej tyre nuk duhet të pranojë një lidhje hyrëse. Fleta pastaj konsumon një grup të dhënash në vend të një ndërfaqeje.
Cila formë fiton varet nga freskia, kontrolli në nivel fushe dhe nga kush duhet të jetë në gjendje të auditojë lexuesin.
Çfarë duhet të përmbajë rezultati i publikuar
Një rrjedhë në drejtim të kundërt ka nevojë për një kontratë të qartë: fushat që mbart, intervalin e rifreskimit, grupin e lexuesve dhe çfarë ndodh kur puna e brendshme dështon. Pa ato katër, fleta tregon në heshtje numrat e djeshëm. Shto një kolonë të krijuar vulë kohore dhe një numërim rreshtash, që një publikim i vjetëruar ose i pjesshëm të jetë i dukshëm në vetë fletën, pa hapur askush një regjistër.
Drejtimi i API-së ka nevojë gjithashtu për një kontratë: çfarë kredenciali pranon porta, çfarë scopes mbart tokeni dhe cilat identitete thirrësi lejohen. Një përgjigje 200 që përmban një faqe hyrjeje nuk është një thirrje e suksesshme, prandaj kontrollo trupin dhe jo vetëm kodin e statusit.
Lexo gabimin nga ana e duhur
Apps Script raporton një host të paarritshëm si përjashtim adrese të padisponueshme, që nuk është mesazhi i shfletuesit për lidhje të refuzuar. Një 403 nga porta do të thotë se kërkesa mbërriti dhe një kredencial ose politikë u refuzua. Një faqe hyrjeje HTML do të thotë se kërkesa arriti një shtresë interaktive që një skript nuk mund ta përfundojë. Tre dështime të ndryshme me tre përgjegjës të ndryshëm.
Mbaj regjistrin e skriptit pranë rezultatit të shfletuesit në vend që të zëvendësosh njërin me tjetrin. Pyetja që mbetet është atëherë një vendim i zakonshëm integrimi: jepi atij mjedisi aksesin që i nevojitet, ose dorëzoji një rezultat të kontrolluar.