我正在尝试让 Netlify Functions 与 Go 一起工作。首先,我尝试克隆官方示例 repo ( https://github.com/netlify/aws-lambda-go-example ) 并且成功了。我的问题是,我有一个需要hugo构建命令的 Hugo 网站,我不知道如何构建 Hugo 和hugoGo 源文件make build(比如在示例 repo 中)——我认为它可以解决问题,但我找不到描述此选项的相关文档。所以我的下一步是手动编译 Go 函数文件并将其放入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。到目前为止一切顺利,我的功能出现在 Netlify UI 中。但是当我请求函数 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)" ]}此外,函数名称似乎hello.js在 Netlify UI 中 - 我不知道它是否应该那样。在我看来,AWS 认为它是 Javascript 而不是 Go。
1 回答
RISEBY
TA贡献1856条经验 获得超5个赞
我没有在 Netlify 上测试压缩的 go 函数。
如果您不想在这种情况下进行手动构建,您可以在 Netlify 部署中内联构建命令。
添加一个构建命令,为项目执行两个构建。
[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 关注
- 122 浏览
添加回答
举报
0/150
提交
取消