VPN ద్వారా Apps Script మీ అంతర్గత యాప్ను ఎందుకు చేరుకోలేదు
Apps Script Google నెట్వర్క్లో నడుస్తుంది, VPN ఉన్న ల్యాప్టాప్లో కాదు. అభ్యర్థన పంపే మెషీన్ కోసం డేటా మార్గాన్ని రూపకల్పన చేయండి.
ల్యాప్టాప్లోని బ్రౌజర్లో డాష్బోర్డ్ బాగా తెరుచుకుంటుంది, కానీ అదే స్ప్రెడ్షీట్ స్క్రిప్ట్ చిరునామా అందుబాటులో లేదు అనే లోపంతో విఫలమవుతుంది. VPN ఆన్ లేదా ఆఫ్ చేయడం ఏమీ మార్చదు, ఎందుకంటే అభ్యర్థన ల్యాప్టాప్ నుండి అసలు బయటకు వెళ్లదు. Apps Script Google మౌలిక సదుపాయాలపై నడుస్తుంది మరియు అక్కడి నుండే తన సొంత కనెక్షన్ను తెరుస్తుంది. ఆ ఒక్క వాస్తవం మొత్తం రూపకల్పనను నిర్ణయిస్తుంది.
ఏదైనా మార్చే ముందు రెండు ప్రశ్నలను వేరు చేయండి: ఏ మెషీన్ అభ్యర్థన పంపుతుంది, మరియు స్వీకర్త ఏ ఆధారాన్ని అంగీకరిస్తాడు.
అభ్యర్థన ఎప్పుడూ మీ ల్యాప్టాప్లో ప్రారంభం కాదు
బ్రౌజర్ ట్యాబ్ ల్యాప్టాప్ నుండి, VPN అడాప్టర్, అంతర్గత DNS ప్రత్యయం ద్వారా ప్రైవేట్ సబ్నెట్కు పంపుతుంది. UrlFetchApp Google నిర్వహించే హోస్ట్ నుండి పంపుతుంది, కాబట్టి ఇది Google రిజాల్వర్లను, Google ఎగ్రెస్ చిరునామాలను చూస్తుంది మరియు మీ స్ప్లిట్-టన్నెల్ మార్గాలలో ఏదీ చూడదు. రెండు మార్గాలు ఒక స్ప్రెడ్షీట్ పత్రాన్ని పంచుకుంటాయి, నెట్వర్క్ స్థానాన్ని కాదు. యాప్ యాక్సెస్ లాగ్లో స్క్రిప్ట్ ప్రయత్నం VPN పూల్ చిరునామా కాకుండా Google చిరునామాగా కనిపిస్తుంది, అదే మీరు పొందే అత్యంత వేగవంతమైన నిర్ధారణ.
అందుకే స్థానిక సవరణలు ఏమీ చేయవు. ల్యాప్టాప్ను మరొక రిజాల్వర్ వైపు చూపించడం, VPN క్లయింట్ను పునఃప్రారంభించడం లేదా hosts-లో ఎంట్రీ జోడించడం బ్రౌజర్ మార్గాన్ని మారుస్తుంది మరియు స్క్రిప్ట్ మార్గాన్ని మునుపు ఉన్నట్లే ఉంచుతుంది.
అది ఏమి మినహాయిస్తుంది
అంతర్గతమైన ముగింపు బిందువును Apps Script నుండి చేరుకోలేము, మరియు ఈ స్థానంలో IP అనుమతి జాబితా యాక్సెస్ నియంత్రణకు బలహీనమైన ప్రత్యామ్నాయం. Google ఎగ్రెస్ పరిధులు విస్తృతమైనవి, ఇతర కస్టమర్లతో పంచుకోబడతాయి మరియు ఒక స్క్రిప్ట్కు కట్టడి చేయలేము. UrlFetchApp సూచన అభ్యర్థనలు Google IP పూల్ నుండి వస్తాయని చెబుతుంది, అదే ఆ వాదనకు అధికారిక సంస్కరణ. అంతర్గత యాప్ను ఆ పరిధులకు తెరవడం మీరు ఆపాదించలేని ట్రాఫిక్ను లోపలికి పంపుతుంది.
బ్రౌజర్ సెషన్లు కూడా అలాగే ప్రవర్తిస్తాయి. ల్యాప్టాప్ బ్రౌజర్లోని కుకీ లేదా SSO సెషన్ అభ్యర్థనతో పాటు ప్రయాణించదు, ఎందుకంటే అభ్యర్థన సెషన్ స్థితి లేని కొత్త HTTPS క్లయింట్. బ్రౌజర్ SSO రీడైరెక్ట్పై ఆధారపడేది మీ డేటాపై కాదు, ఆ రీడైరెక్ట్ వద్దే ముగుస్తుంది.
రెండు ఆచరణీయ రూపాలు
మొదటి రూపం స్క్రిప్ట్కు ఆమోదించబడిన API ఇస్తుంది. అంతర్గత సేవను కాలర్ను ప్రామాణీకరించే గేట్వే వెనుక ప్రచురించండి, తర్వాత స్క్రిప్ట్ గేట్వే అంగీకరించే ఆధారాన్ని, ఉదాహరణకు సేవా ఖాతా టోకెన్ను సమర్పించనివ్వండి. Apps Script-లో దీని అర్థం OAuth2 లైబ్రరీ లేదా ScriptApp.getOAuthToken(), దానితో పాటు API వైపు IP జాబితాకు బదులుగా కాలర్ గుర్తింపుల అనుమతి జాబితా.
రెండవ రూపం దిశను తిప్పికొడుతుంది. అంతర్గత పని ప్రైవేట్ వ్యవస్థను అడిగి, నియంత్రిత ఫలితాన్ని స్క్రిప్ట్ చదివే Sheet, Cloud Storage వస్తువు లేదా BigQuery పట్టికకు ప్రచురిస్తుంది. Cloud Run పని, స్థానిక షెడ్యూలర్ లేదా ఇప్పటికే ఉన్న ETL దశ ఆ పని కావచ్చు, వాటిలో ఏదీ లోపలికి వచ్చే కనెక్షన్ను అంగీకరించాల్సిన అవసరం లేదు. అప్పుడు స్ప్రెడ్షీట్ ఇంటర్ఫేస్కు బదులుగా డేటాసెట్ను వినియోగిస్తుంది.
ఏ రూపం గెలుస్తుంది అనేది తాజాదనం, ఫీల్డ్ స్థాయి నియంత్రణ మరియు పాఠకుడిని ఎవరు ఆడిట్ చేయగలగాలి అనే దానిపై ఆధారపడి ఉంటుంది.
ప్రచురిత ఫలితంలో ఏమి ఉండాలి
వ్యతిరేక దిశ ఫీడ్కు స్పష్టమైన ఒప్పందం అవసరం: అది మోసే ఫీల్డ్లు, రిఫ్రెష్ విరామం, పాఠకుల బృందం మరియు అంతర్గత పని విఫలమైనప్పుడు ఏమి జరుగుతుంది. ఆ నాలుగు లేకుండా స్ప్రెడ్షీట్ నిశ్శబ్దంగా నిన్నటి సంఖ్యలను చూపుతుంది. సృష్టించిన టైమ్స్టాంప్ నిలువు వరుస మరియు వరుసల గణనను జోడించండి, తద్వారా పాత లేదా పాక్షిక ప్రచురణ ఎవరూ లాగ్ తెరవకుండా షీట్లోనే కనిపిస్తుంది.
API దిశకు కూడా ఒప్పందం కావాలి: గేట్వే ఏ ఆధారాన్ని అంగీకరిస్తుంది, టోకెన్ ఏ scopes మోస్తుంది మరియు ఏ కాలర్ గుర్తింపులు అనుమతించబడతాయి. సైన్-ఇన్ పేజీ ఉన్న 200 ప్రతిస్పందన విజయవంతమైన కాల్ కాదు, కాబట్టి స్థితి కోడ్ మాత్రమే కాదు, బాడీని కూడా తనిఖీ చేయండి.
లోపాన్ని సరైన వైపు నుండి చదవండి
Apps Script చేరుకోలేని హోస్ట్ను చిరునామా అందుబాటులో లేకపోవడం అనే మినహాయింపుగా నివేదిస్తుంది, అది బ్రౌజర్ కనెక్షన్ నిరాకరణ సందేశం కాదు. గేట్వే నుండి 403 అంటే అభ్యర్థన చేరింది మరియు ఆధారం లేదా విధానం తిరస్కరించబడింది. HTML సైన్-ఇన్ పేజీ అంటే అభ్యర్థన స్క్రిప్ట్ పూర్తి చేయలేని ఇంటరాక్టివ్ పొరకు చేరింది. మూడు వేర్వేరు వైఫల్యాలు, మూడు వేర్వేరు బాధ్యులు.
స్క్రిప్ట్ లాగ్ను బ్రౌజర్ ఫలితం పక్కన ఉంచండి, ఒకదాన్ని మరొకదానితో భర్తీ చేయవద్దు. అప్పుడు మిగిలిన ప్రశ్న సాధారణ ఇంటిగ్రేషన్ నిర్ణయం: ఆ వాతావరణానికి అవసరమైన యాక్సెస్ ఇవ్వండి, లేదా దానికి నియంత్రిత ఫలితాన్ని అందించండి.