第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

lambda 層與 Go 兼容嗎?

lambda 層與 Go 兼容嗎?

Go
明月笑刀無情 2023-05-22 17:13:09
是否可以將 Golang lambda 與 AWS 的新 lambda 層功能一起使用?我一直在嘗試找到一種解決方案,以將層與用 Go 編寫的 Lambda 函數(shù)一起使用,但我一直未能這樣做。不過,我讓它與 python lambda 一起工作。我覺得因為 Go 代碼是編譯后的二進(jìn)制文件,所以不可能在運(yùn)行時使用層導(dǎo)入。如果我在本地有層的代碼,導(dǎo)入也會被編譯成二進(jìn)制文件,這就違背了使用層的目的。有沒有人知道或有任何使用 Golang 的 Lambda 層的例子?
查看完整描述

3 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊

Go 依賴項位于已編譯的二進(jìn)制文件中,因此您不能/不需要使用層。問題在語言層面得到解決。它與編譯的事實(shí)沒有任何關(guān)系,C 和 C++ 二進(jìn)制文件仍然具有依賴性。



查看完整回答
反對 回復(fù) 2023-05-22
?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗 獲得超10個贊

實(shí)際上,可以為 Go 層提供一個預(yù)編譯的插件,但是有太多的限制,它并不是很有用:

  • 插件和應(yīng)用程序必須使用完全相同的編譯器版本進(jìn)行編譯(例如,1.13.3 和 1.13.4 之間不兼容)。

  • 如果插件和應(yīng)用程序都依賴于相同的依賴項,那么它們也必須使用完全相同的版本。

  • 當(dāng)插件的 API 使用自定義接口和/或結(jié)構(gòu)時,它們需要在共享的 Go 包中定義,該包必須由插件和應(yīng)用程序?qū)搿?/p>

  • 插件和應(yīng)用程序共有的所有依賴項都必須存儲在相同的文件夾結(jié)構(gòu)中!

在 AWS Lambda 層的情況下,上面提到的最后兩點(diǎn)使 Go 層變得毫無用處。由于應(yīng)用程序代碼無論如何都需要導(dǎo)入共享包,為什么不導(dǎo)入駐留在 Go 層中的實(shí)際包呢?

如果我沒看錯,Go 插件系統(tǒng)將用于提供與主應(yīng)用程序一起編譯和部署的可插入實(shí)現(xiàn)。它并非旨在供第三方用于交付自定義應(yīng)用程序插件。

底線是:如果你真的想要,你可以使用 Go + AWS Lambda Layers,但在我看來,實(shí)際上不值得付出努力。


查看完整回答
反對 回復(fù) 2023-05-22
?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗 獲得超8個贊

不幸的是,到了 2022 年,這仍然是一個問題。

是的,您可以構(gòu)建一個插件并創(chuàng)建一個層,將其注入您的 lambda,但這CGO_ENABLED是一個交易破壞者。

基本上,您的 lambdaCGO_ENABLED=0在構(gòu)建步驟中需要。(例如。GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o main main.go

但是,在禁用 CGO 的情況下,在您的 lambda 中使用“插件”會導(dǎo)致錯誤 -plugin: not implemented

從我可以確認(rèn)的情況來看,在本地,當(dāng) CGO 兩次都啟用時 - 即在構(gòu)建插件和 go 模塊時,導(dǎo)入插件按預(yù)期工作。但是,在 AWS 中,要使 lambda 起作用,您需要在構(gòu)建期間禁用 CGO,這意味著使用插件是脫離上下文的。


查看完整回答
反對 回復(fù) 2023-05-22
  • 3 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號