国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

Google把腳本執(zhí)行鎖了3年,開發(fā)者用1個(gè)庫把它撬開了

0
分享至


Google Apps Script(GAS)有個(gè)挺別扭的設(shè)定:你的代碼明明寫在本地,運(yùn)行卻必須上傳到Google服務(wù)器。這就像買了臺(tái)游戲機(jī),每次想玩都得先把光盤寄到廠家,等他們幫你讀盤。

這個(gè)痛點(diǎn)存在了多久?從2017年clasp(命令行工具)發(fā)布算起,開發(fā)者忍了8年。期間無數(shù)人試圖在GitHub Actions里直接跑GAS腳本,結(jié)果都撞上一堵墻——要么部署Web App(每次改代碼都要重新發(fā)布),要么調(diào)用Apps Script API(權(quán)限配置復(fù)雜到懷疑人生)。

2024年,一個(gè)叫g(shù)as-fakes的庫出現(xiàn)了。它做的事很簡(jiǎn)單:在Node.js環(huán)境里模擬完整的GAS運(yùn)行時(shí),讓你的腳本以為自己在Google服務(wù)器上。

Web App方案為什么讓人崩潰

先說說主流做法的問題。很多團(tuán)隊(duì)用GitHub Actions觸發(fā)GAS,是通過部署Web App實(shí)現(xiàn)的——把腳本發(fā)布成一個(gè)URL,CI流程里發(fā)HTTP請(qǐng)求調(diào)用。

這個(gè)流程有幾個(gè)暗坑。第一,每次代碼更新后必須重新部署Web App,版本管理完全割裂。第二,你無法在GitHub里直接驗(yàn)證最新代碼,得兩邊來回切。第三,Web App的權(quán)限粒度很粗,要么全開要么全關(guān),敏感操作容易暴露。

一位在Reddit吐槽的開發(fā)者說得直白:「我花了3小時(shí)配置OAuth,結(jié)果只是為了在CI里改一個(gè)單元格的值?!?/p>

gas-fakes的解法是把Google Workspace的服務(wù)端API包裝成GAS原生對(duì)象。SpreadsheetApp.getActiveSheet()這類代碼在Node.js里直接跑,背后實(shí)際調(diào)用的是Google Sheets API,但你的腳本完全感知不到差異。

15分鐘搭一條本地可跑的流水線

具體怎么操作?核心就兩步:生成ADC(Application Default Credentials,應(yīng)用默認(rèn)憑證)憑證,然后在GitHub Actions里注入。

本地初始化用npx最省事,不用全局安裝:

npx @mcpher/gas-fakes init --auth-type adc

npx @mcpher/gas-fakes auth

第一條命令生成憑證文件,第二條完成OAuth授權(quán)。之后把憑證內(nèi)容存進(jìn)GitHub倉庫的Secrets,CI流程里通過環(huán)境變量注入,gas-fakes會(huì)自動(dòng)讀取。

關(guān)鍵點(diǎn)在于:腳本執(zhí)行全程在GitHub Actions的Runner里完成,不需要部署任何Web App,也不需要維護(hù)Apps Script API的復(fù)雜權(quán)限鏈。

這意味著什么?你的版本控制、代碼審查、自動(dòng)化測(cè)試可以真正閉環(huán)在GitHub內(nèi)完成。改完代碼推PR,CI自動(dòng)跑一遍,確認(rèn)沒問題再合并——傳統(tǒng)GAS開發(fā)里這個(gè)「跑一遍」的環(huán)節(jié),以前得手動(dòng)上傳到Google服務(wù)器才能驗(yàn)證。

誰在用,以及他們省了多少錢

gas-fakes的作者Bruce McPherson是Google Developer Expert,這個(gè)庫目前周下載量在npm上穩(wěn)定在2000左右。不算爆款,但在GAS這個(gè)細(xì)分領(lǐng)域已經(jīng)是最活躍的解決方案。

實(shí)際案例里,有個(gè)做電商數(shù)據(jù)自動(dòng)化的團(tuán)隊(duì)分享過:他們把原本部署在Google Apps Script上的訂單處理流程遷移到GitHub Actions+gas-fakes,CI執(zhí)行時(shí)間從平均4分鐘降到47秒。主要省掉的是Web App冷啟動(dòng)和Google服務(wù)器端的排隊(duì)延遲。

另一個(gè)用例是Sheets宏的批量測(cè)試。有個(gè)財(cái)務(wù)SaaS團(tuán)隊(duì)需要驗(yàn)證200多個(gè)模板表格的兼容性,以前靠人工抽樣,現(xiàn)在用gas-fakes在CI里全量跑,每次發(fā)布前自動(dòng)掃一遍。

這些場(chǎng)景有個(gè)共同點(diǎn):不需要Web App的HTTP接口能力,純粹是后臺(tái)數(shù)據(jù)處理。恰恰是GAS最擅長(zhǎng)的領(lǐng)域,卻被執(zhí)行環(huán)境限制卡了很多年。

憑證安全怎么解

把Google賬號(hào)憑證放進(jìn)GitHub Secrets,聽起來有風(fēng)險(xiǎn)。gas-fakes的ADC方案其實(shí)比Web App更安全——憑證只在你本地生成,CI里是一次性環(huán)境變量,不會(huì)持久化到任何服務(wù)器。

對(duì)比Web App方案:那個(gè)URL一旦泄露,任何人都能觸發(fā)你的腳本。而gas-fakes的憑證作用域可以精確到單個(gè)Sheets文件或Drive目錄,配合GCP的IAM策略,能實(shí)現(xiàn)最小權(quán)限原則。

有個(gè)細(xì)節(jié)很多人沒注意到:gas-fakes支持在本地用--dry-run模式跑腳本,不實(shí)際調(diào)用API,只驗(yàn)證代碼邏輯。這對(duì)CI里的快速反饋很有用,類似單元測(cè)試和集成測(cè)試的分層。

當(dāng)然,這個(gè)方案也有邊界。如果你的GAS腳本依賴Triggers(時(shí)間觸發(fā)器)或UI組件(菜單、對(duì)話框),gas-fakes模擬不了,還是得走傳統(tǒng)部署。但對(duì)于純數(shù)據(jù)處理、API編排類的腳本,覆蓋度已經(jīng)很高。

Google官方對(duì)這類「繞過」工具的態(tài)度一向曖昧。既不阻止,也不支持。clasp當(dāng)年是社區(qū)項(xiàng)目,后來被Google收編;gas-fakes會(huì)不會(huì)走同一條路?McPherson在文檔里寫了一句:「這個(gè)庫的存在,是因?yàn)镚oogle沒提供同等能力的官方方案?!?/p>

如果明天Google突然開放原生Node.js運(yùn)行時(shí),gas-fakes會(huì)立刻變成歷史。但在那之前,它可能是GAS開發(fā)者能拿到的最順手的CI/CD鑰匙。

你現(xiàn)在有多少腳本還卡在「本地改完、手動(dòng)上傳、祈禱別崩」的循環(huán)里?

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
6歲男童被棄酒店半個(gè)月,媽媽終于現(xiàn)身!孩子緊緊抱住不愿松手,網(wǎng)友:這孩子懂事得讓人心疼

6歲男童被棄酒店半個(gè)月,媽媽終于現(xiàn)身!孩子緊緊抱住不愿松手,網(wǎng)友:這孩子懂事得讓人心疼

大風(fēng)新聞
2026-03-25 15:43:11
曝張雪峰倒下30分鐘后才被發(fā)現(xiàn),飲食習(xí)慣糟糕,一口氣吃8根雪糕

曝張雪峰倒下30分鐘后才被發(fā)現(xiàn),飲食習(xí)慣糟糕,一口氣吃8根雪糕

古希臘掌管松餅的神
2026-03-25 11:08:46
釋永信“開光”真相大白,過程不堪入目,易中天也有牽扯

釋永信“開光”真相大白,過程不堪入目,易中天也有牽扯

尋墨閣
2026-03-25 11:39:10
聯(lián)大通過決議 宣布奴隸制行為為最嚴(yán)重反人類罪

聯(lián)大通過決議 宣布奴隸制行為為最嚴(yán)重反人類罪

財(cái)聯(lián)社
2026-03-26 01:24:06
洛克希德·馬丁:將精確打擊導(dǎo)彈產(chǎn)量提升四倍

洛克希德·馬?。簩⒕_打擊導(dǎo)彈產(chǎn)量提升四倍

財(cái)聯(lián)社
2026-03-25 19:18:36
張雪峰不是張維為

張雪峰不是張維為

林中木白
2026-03-25 10:31:03
“史上最慘”的成都糖酒會(huì),徹底撕開了白酒行業(yè)的遮羞布

“史上最慘”的成都糖酒會(huì),徹底撕開了白酒行業(yè)的遮羞布

財(cái)經(jīng)早餐
2026-03-25 22:42:59
32.29萬起!全新一代A6L正式上市,華為乾崑智駕上車!

32.29萬起!全新一代A6L正式上市,華為乾崑智駕上車!

小南看車
2026-03-25 22:59:29
曝張雪峰3段婚姻都是閃婚,前妻緬懷滿是惋惜,瘋狂健身疑為備孕

曝張雪峰3段婚姻都是閃婚,前妻緬懷滿是惋惜,瘋狂健身疑為備孕

古希臘掌管松餅的神
2026-03-25 12:00:46
國產(chǎn)筆記本CPU偷梁換柱翻車!官方終于回應(yīng):生產(chǎn)失誤、全額退款

國產(chǎn)筆記本CPU偷梁換柱翻車!官方終于回應(yīng):生產(chǎn)失誤、全額退款

快科技
2026-03-25 10:14:04
信達(dá)證券所長(zhǎng)被曝猥褻女員工,撫摸私密處,正臉照被扒,警方介入

信達(dá)證券所長(zhǎng)被曝猥褻女員工,撫摸私密處,正臉照被扒,警方介入

180視角
2026-03-25 15:58:41
4個(gè)LV包都是假的!女子送檢后傻眼:全在專柜買的啊,最新回應(yīng)

4個(gè)LV包都是假的!女子送檢后傻眼:全在專柜買的啊,最新回應(yīng)

半島晨報(bào)
2026-03-25 15:30:03
張雪峰追悼會(huì)周六將在蘇州殯儀館舉行

張雪峰追悼會(huì)周六將在蘇州殯儀館舉行

界面新聞
2026-03-26 07:04:27
涉嫌非法入侵建筑物,強(qiáng)闖我駐日使館不法之徒被送檢

涉嫌非法入侵建筑物,強(qiáng)闖我駐日使館不法之徒被送檢

界面新聞
2026-03-26 08:45:06
美國15條,自己和自己簽的戰(zhàn)敗投降書!

美國15條,自己和自己簽的戰(zhàn)敗投降書!

勝研集
2026-03-25 14:36:53
以色列人哭了:這不是該發(fā)生在劣等民族身上的嗎?

以色列人哭了:這不是該發(fā)生在劣等民族身上的嗎?

李榮茂
2026-03-23 18:59:00
伊朗伊斯蘭革命衛(wèi)隊(duì)稱擊落一架美軍F-18戰(zhàn)機(jī)

伊朗伊斯蘭革命衛(wèi)隊(duì)稱擊落一架美軍F-18戰(zhàn)機(jī)

環(huán)球網(wǎng)資訊
2026-03-26 06:37:05
4月1日醫(yī)保7號(hào)令落地!1965-1985年出生的,這6件事務(wù)必抓緊辦

4月1日醫(yī)保7號(hào)令落地!1965-1985年出生的,這6件事務(wù)必抓緊辦

混沌錄
2026-03-25 15:50:11
張雪峰離世!北京蘇州房產(chǎn)不在名下,1400名員工等安撫,好友停工

張雪峰離世!北京蘇州房產(chǎn)不在名下,1400名員工等安撫,好友停工

阿纂看事
2026-03-25 21:31:59
退役體操冠軍,直播“擦邊”之后

退役體操冠軍,直播“擦邊”之后

中國新聞周刊
2026-03-25 21:34:08
2026-03-26 08:55:00
Ping值焦慮
Ping值焦慮
有態(tài)度網(wǎng)友ytd
43文章數(shù) 0關(guān)注度
往期回顧 全部

科技要聞

硅谷因AI大裁員?一線工程師戳破真相

頭條要聞

"10元手沖咖啡"阿姨曾1天賣1000杯 如今只賣兩三杯

頭條要聞

"10元手沖咖啡"阿姨曾1天賣1000杯 如今只賣兩三杯

體育要聞

35歲替補(bǔ)門將,憑什么入選英格蘭隊(duì)?

娛樂要聞

張雪峰遺產(chǎn)分割復(fù)雜!是否立遺囑成關(guān)鍵

財(cái)經(jīng)要聞

黃仁勛:芯片公司的時(shí)代已經(jīng)結(jié)束了

汽車要聞

智己LS8放大招 30萬內(nèi)8系旗艦+全線控底盤秀實(shí)力

態(tài)度原創(chuàng)

親子
教育
手機(jī)
公開課
軍事航空

親子要聞

四歲萌娃歐洲街頭挑戰(zhàn)街舞,圍觀路人紛紛為小萌娃鼓掌

教育要聞

春風(fēng)潤?quán)l(xiāng)土,春假育新人——春假為鄉(xiāng)村教育注入新動(dòng)能

手機(jī)要聞

蘋果正式回應(yīng)iPhone半夜偷打電話bug:iOS 26.3已修復(fù)

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

伊朗重申非交戰(zhàn)國家船只可安全通過霍爾木茲海峽

無障礙瀏覽 進(jìn)入關(guān)懷版