Неге Apps Script VPN арқылы ішкі қолданбаңызға жете алмайды
Apps Script Google желісінде жұмыс істейді, VPN бар ноутбукта емес. Дерек жолын сұраныс жіберетін машина үшін жобалаңыз.
Бақылау тақтасы ноутбуктағы браузерде жақсы ашылады, бірақ сол кесте скрипті мекенжайға қол жетпейтіні туралы қатемен сәтсіз аяқталады. VPN-ды қосу немесе өшіру ештеңені өзгертпейді, өйткені сұраныс ноутбуктан мүлдем шықпайды. Apps Script Google инфрақұрылымында орындалады және өз қосылымын содан ашады. Осы бір факт бүкіл жобаны анықтайды.
Бірдеңені өзгертудің алдында екі сұрақты бөліңіз: қай машина сұраныс жібереді және қабылдаушы қандай тіркелгі деректерін қабылдайды.
Сұраныс ешқашан сіздің ноутбуқта басталмайды
Браузер қойындысы ноутбуктан VPN адаптері, ішкі DNS суффиксі арқылы жеке ішкі желіге жібереді. UrlFetchApp Google басқаратын хосттан жібереді, сондықтан ол Google шешушілерін, Google шығу мекенжайларын көреді және сіздің split-tunnel маршруттарыңыздың ешқайсысын көрмейді. Екі жол кесте құжатын ортақ пайдаланады, желілік орынды емес. Қолданбаның кіру журналында скрипттің әрекеті VPN пулының мекенжайы емес, Google мекенжайы ретінде көрінеді, және бұл алатын ең жылдам растау.
Сондықтан жергілікті түзетулер ештеңе істемейді. Ноутбукты басқа шешушіге бағыттау, VPN клиентін қайта іске қосу немесе hosts-қа жазба қосу браузердің жолын өзгертеді және скрипттің жолын бұрынғыдай қалдырады.
Бұл нені жоққа шығарады
Тек ішкі соңғы нүктеге Apps Script-тен жету мүмкін емес, ал рұқсат етілген IP тізімі бұл орында кіруді бақылаудың әлсіз баламасы. Google шығу ауқымдары кең, басқа клиенттермен бөліседі және оларды бір скриптке байлау мүмкін емес. UrlFetchApp анықтамасы сұраныстар Google IP пулынан шығады деп көрсетеді, бұл сол тұжырымның беделді нұсқасы. Ішкі қолданбаны осы ауқымдарға ашу сіз тиесілі деп көрсете алмайтын трафикті кіргізеді.
Браузер сессиялары да солай әрекет етеді. Ноутбук браузеріндегі cookie немесе 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 кіру беті сұраныс скрипт аяқтай алмайтын интерактивті қабатқа жетті дегенді білдіреді. Үш түрлі сәтсіздік, үш түрлі жауапты.
Скрипт журналын браузер нәтижесінің қасында ұстаңыз, бірін екіншісімен алмастырмаңыз. Сонда қалған сұрақ кәдімгі интеграция шешімі: сол ортаға қажетті рұқсатты беріңіз немесе оған бақыланатын нәтиже жеткізіңіз.