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

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

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

0
分享至


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

這個痛點(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(shù)as-fakes的庫出現(xiàn)了。它做的事很簡單:在Node.js環(huán)境里模擬完整的GAS運(yùn)行時,讓你的腳本以為自己在Google服務(wù)器上。

Web App方案為什么讓人崩潰

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

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

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

gas-fakes的解法是把Google Workspace的服務(wù)端API包裝成GAS原生對象。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會自動讀取。

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

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

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

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

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

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

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

憑證安全怎么解

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

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

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

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

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

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

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

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(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)推薦
拼多多宣布組建“新拼姆”,新公司落地上海,一期已注資150億元

拼多多宣布組建“新拼姆”,新公司落地上海,一期已注資150億元

文匯報
2026-03-25 20:33:09
宋美齡書法對比:鋼筆字似小學(xué)生,英文手稿如中學(xué)生!

宋美齡書法對比:鋼筆字似小學(xué)生,英文手稿如中學(xué)生!

書畫相約
2026-03-26 07:49:18
涉嫌嚴(yán)重違紀(jì)違法,姚啟生被查

涉嫌嚴(yán)重違紀(jì)違法,姚啟生被查

都市快報橙柿互動
2026-03-25 20:00:35
我57歲,退休后參加了3個老年團(tuán),發(fā)現(xiàn)不同圈子的不同“潛規(guī)則”

我57歲,退休后參加了3個老年團(tuán),發(fā)現(xiàn)不同圈子的不同“潛規(guī)則”

十指說情
2026-03-24 09:06:31
滯留中國巴拿馬船暴漲3倍,每天要交幾十萬,船東想換船籍保平安

滯留中國巴拿馬船暴漲3倍,每天要交幾十萬,船東想換船籍保平安

卷史
2026-03-26 01:05:08
歐洲芯片巨頭官宣:我已在中國大陸,制造40nm芯片了

歐洲芯片巨頭官宣:我已在中國大陸,制造40nm芯片了

互聯(lián)網(wǎng).亂侃秀
2026-03-25 09:45:10
《奔跑吧14》正式定檔4月24日!新老陣容煥新,經(jīng)典環(huán)節(jié)重啟

《奔跑吧14》正式定檔4月24日!新老陣容煥新,經(jīng)典環(huán)節(jié)重啟

齊魯壹點(diǎn)
2026-03-25 18:00:36
爆冷擊敗2號種子!中國女網(wǎng)15歲小花崛起:追趕鄭欽文王欣瑜?

爆冷擊敗2號種子!中國女網(wǎng)15歲小花崛起:追趕鄭欽文王欣瑜?

李喜林籃球絕殺
2026-03-25 17:21:56
曝張雪峰已立遺囑,遺產(chǎn)由女兒張姩菡單獨(dú)繼承,遺囑立于去年3月

曝張雪峰已立遺囑,遺產(chǎn)由女兒張姩菡單獨(dú)繼承,遺囑立于去年3月

扒蝦侃娛
2026-03-25 23:09:21
哈薩克斯坦也沒想到,跟著中國混來混去,結(jié)果自己也混成了個霸主

哈薩克斯坦也沒想到,跟著中國混來混去,結(jié)果自己也混成了個霸主

老屬科普
2026-03-23 13:52:21
俄羅斯一天發(fā)射948架無人機(jī),澤連斯基暴怒:俄羅斯不想結(jié)束戰(zhàn)爭

俄羅斯一天發(fā)射948架無人機(jī),澤連斯基暴怒:俄羅斯不想結(jié)束戰(zhàn)爭

起喜電影
2026-03-26 05:34:55
被我國慣壞了!美國游客回國吐槽:連出門都變得不適應(yīng),落差太大

被我國慣壞了!美國游客回國吐槽:連出門都變得不適應(yīng),落差太大

萬物知識圈
2026-03-02 12:40:28
雙喜臨門,簽下長約,踢世界杯!再好的青訓(xùn)精英也需要伯樂

雙喜臨門,簽下長約,踢世界杯!再好的青訓(xùn)精英也需要伯樂

95帕爾馬
2026-03-26 08:45:06
合肥市廬陽區(qū)教體局通報:合肥安信地產(chǎn)大廈398室等被查!

合肥市廬陽區(qū)教體局通報:合肥安信地產(chǎn)大廈398室等被查!

肥東論壇
2026-03-25 22:22:28
江蘇蘇州一女神太漂亮 身高169CM 體重52公斤 五官精致到無懈可擊!

江蘇蘇州一女神太漂亮 身高169CM 體重52公斤 五官精致到無懈可擊!

鄉(xiāng)野小珥
2026-03-22 11:59:25
CCTV5直播!國足VS世界杯魚腩 首發(fā)曝光:已定5人 邵佳一重用老將

CCTV5直播!國足VS世界杯魚腩 首發(fā)曝光:已定5人 邵佳一重用老將

侃球熊弟
2026-03-25 13:40:12
聯(lián)合國預(yù)警:稀土只是煙霧彈!2030中國供應(yīng)鏈將徹底鎖死美制造

聯(lián)合國預(yù)警:稀土只是煙霧彈!2030中國供應(yīng)鏈將徹底鎖死美制造

古史青云啊
2026-03-25 12:15:43
首爾的“危險天平”:俄羅斯為何如此擔(dān)心韓國援烏

首爾的“危險天平”:俄羅斯為何如此擔(dān)心韓國援烏

民間胡扯老哥
2026-03-23 19:00:36
曾澤生明明是個中等水平將軍,為什么卻能成為地表最強(qiáng)防御部隊?

曾澤生明明是個中等水平將軍,為什么卻能成為地表最強(qiáng)防御部隊?

云霄紀(jì)史觀
2026-03-25 17:08:29
14歲初中生把干冰放冰箱,半夜爆炸致價值上萬冰箱報廢 家長:沒責(zé)備他

14歲初中生把干冰放冰箱,半夜爆炸致價值上萬冰箱報廢 家長:沒責(zé)備他

紅星新聞
2026-03-24 23:25:19
2026-03-26 09:55:00
Ping值焦慮
Ping值焦慮
有態(tài)度網(wǎng)友ytd
44文章數(shù) 0關(guān)注度
往期回顧 全部

科技要聞

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

頭條要聞

舉天價零件發(fā)出靈魂拷問的美官員 自己被大學(xué)生質(zhì)問了

頭條要聞

舉天價零件發(fā)出靈魂拷問的美官員 自己被大學(xué)生質(zhì)問了

體育要聞

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

娛樂要聞

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

財經(jīng)要聞

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

汽車要聞

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

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

時尚
數(shù)碼
手機(jī)
公開課
軍事航空

《非窮盡列舉》,好看又絕望

數(shù)碼要聞

銷量暴跌40%!2026開年筆記本電腦市場遭遇雙重沖擊

手機(jī)要聞

蘋果macOS 26.4首次粘貼命令到終端將觸發(fā)安全攔截

公開課

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

軍事要聞

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

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