我正在嘗試讓 Netlify Functions 與 Go 一起工作。首先,我嘗試克隆官方示例 repo ( https://github.com/netlify/aws-lambda-go-example ) 并且成功了。我的問題是,我有一個需要hugo構(gòu)建命令的 Hugo 網(wǎng)站,我不知道如何構(gòu)建 Hugo 和hugoGo 源文件make build(比如在示例 repo 中)——我認為它可以解決問題,但我找不到描述此選項的相關(guān)文檔。所以我的下一步是手動編譯 Go 函數(shù)文件并將其放入functions文件夾中。源文件(來自上面的例子):package mainimport ( "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda")func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { return events.APIGatewayProxyResponse{ StatusCode: 200, Body: "Hello AWS Lambda and Netlify", }, nil}func main() { // Make the handler available for Remote Procedure Call by AWS Lambda lambda.Start(handler)}我使用https://github.com/aws/aws-lambda-go#building-your-function上提供的指令來編譯 Go 二進制文件:GOOS=linux GOARCH=amd64 go build -o hello hello.gozip hello.zip hellomv hello.zip ./functions/hello.zip這被推送到 Git,因此部署到 Netlify。到目前為止一切順利,我的功能出現(xiàn)在 Netlify UI 中。但是當(dāng)我請求函數(shù) URL 時,我收到錯誤消息: { "errorMessage": "Invalid or unexpected token", "errorType": "SyntaxError", "stackTrace": [ "", "SyntaxError: Invalid or unexpected token", "createScript (vm.js:80:10)", "Object.runInThisContext (vm.js:139:10)", "Module._compile (module.js:616:28)", "Object.Module._extensions..js (module.js:663:10)", "Module.load (module.js:565:32)", "tryModuleLoad (module.js:505:12)", "Function.Module._load (module.js:497:3)", "Module.require (module.js:596:17)", "require (internal/module.js:11:18)" ]}此外,函數(shù)名稱似乎hello.js在 Netlify UI 中 - 我不知道它是否應(yīng)該那樣。在我看來,AWS 認為它是 Javascript 而不是 Go。
1 回答

RISEBY
TA貢獻1856條經(jīng)驗 獲得超5個贊
我沒有在 Netlify 上測試壓縮的 go 函數(shù)。
如果您不想在這種情況下進行手動構(gòu)建,您可以在 Netlify 部署中內(nèi)聯(lián)構(gòu)建命令。
添加一個構(gòu)建命令,為項目執(zhí)行兩個構(gòu)建。
[build]
command = "make build && hugo"
functions = "functions"
publish = "public"
[build.environment]
# Change this path with the path to your repository
GO_IMPORT_PATH = "github.com/netlify/aws-lambda-go-example"
- 1 回答
- 0 關(guān)注
- 168 瀏覽
添加回答
舉報
0/150
提交
取消