为了账号安全,请及时绑定邮箱和手机立即绑定

Netlify 函数 (AWS Lambda) 示例“hello”Golang 函数:

Netlify 函数 (AWS Lambda) 示例“hello”Golang 函数:

Go
吃鸡游戏 2023-05-15 15:14:28
我正在尝试让 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"


查看完整回答
反对 回复 2023-05-15
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信