我在部署云功能時(shí)遇到問題,因?yàn)槲业囊粋€(gè)包間接使用golang.org/x/sys使用此版本時(shí),CF 構(gòu)建通過以上任何一項(xiàng)似乎都失敗了# golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4但是在每次運(yùn)行之后go get -u ./...我們都會獲得更新的版本并且 CF 構(gòu)建失敗并出現(xiàn)錯誤2022-10-02 09:03:07.208 CESTStep #1 - "build": # cloudfunctionissue/vendor/golang.org/x/sys/unix2022-10-02 09:03:07.208 CESTStep #1 - "build": src/cloudfunctionissue/vendor/golang.org/x/sys/unix/syscall.go:83:16: undefined: unsafe.Slice2022-10-02 09:03:07.208 CESTStep #1 - "build": src/cloudfunctionissue/vendor/golang.org/x/sys/unix/syscall_linux.go:2255:9: undefined: unsafe.Slice2022-10-02 09:03:07.208 CESTStep #1 - "build": src/cloudfunctionissue/vendor/golang.org/x/sys/unix/syscall_unix.go:118:7: undefined: unsafe.Slice2022-10-02 09:03:07.208 CESTStep #1 - "build": src/cloudfunctionissue/vendor/golang.org/x/sys/unix/sysvshm_unix.go:33:7: undefined: unsafe.Slice似乎這個(gè)文檔沒有為我解釋足夠的問題https://cloud.google.com/functions/docs/writing/specifying-dependencies-go#using_a_vendor_directory
2 回答

HUWWW
TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
謝謝您的回答,是的,我同意您的看法,我的問題來自較新版本的 go。但是,我們通過僅更新直接導(dǎo)入的包并跳過間接更新找到了解決此問題的方法。
#!/bin/sh
module=$(go list -f '{{.Module.Path}}' .)
go mod tidy
go get -d -t $(go mod graph | grep "^$module" | cut -d ' ' -f 2 | sed 's/@.*/@upgrade/g')
go mod tidy
go mod download
將此腳本應(yīng)用于 dockerfile 后,我們正在毫無問題地構(gòu)建我們的 CF。

肥皂起泡泡
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
由于運(yùn)行時(shí),您收到此錯誤。unsafe.Slice是在 引入的go v1.17
,目前支持云函數(shù)v1.16
。您的代碼以某種方式調(diào)用了syscall.go:83.16和其他包。因此,您遇到了以上錯誤。嘗試還原或確定是什么在調(diào)用這些包。
- 2 回答
- 0 關(guān)注
- 805 瀏覽
添加回答
舉報(bào)
0/150
提交
取消