使用 aws-go-dep 安装无服务器不起作用

Installing serverless with aws-go-dep not working

我刚刚开始使用 Golang 和无服务器。我在 MacOS 上基本上完成了这些步骤:

  1. brew 安装 golang
  2. brew 安装 dep
  3. npm 安装-g 无服务器
  4. mkdir ~/Projects/testproject
  5. 已将 export GOPATH="$GOPATH:~/Projects/testproject" 添加到 ~/.profile
  6. serverless 在 testprojects 文件夹中创建 -t aws-go-dep -p myservice
  7. 运行 制造并得到这个奇怪的错误:
unable to create lock pkg/dep/sm.lock: Lockfiles must be given as absolute path names
make: *** [build] Error 1

不确定我做错了什么。我还按照博客文章进行了示例设置:https://serverless.com/blog/framework-example-golang-lambda-support/

根据 go env 我的路径是:GOPATH=":/Users/ddibiase-macbook/go:/Users/ddibiase-macbook/Projects/centive/api"

网上没有太多有用的文档来解决这个问题:-/

This documentation 可以帮助您设置 Go 特定的开发环境。

简而言之,您需要设置两个变量 - GOPATH & GOROOT

这是您的 .profile 应该看起来的样子...

# this is mac os specific

export GOPATH=$HOME/Projects

# set goroot
export GOROOT=/usr/local/opt/go/libexec

# set path
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin

为了解决这个问题,我最终放弃了创建自定义工作区,只是让我的 GOPATH 指向一个一致的文件夹。 GOROOT 被指向 /usr/local/opt/go/libexec(似乎是 Brew 安装 Go 的地方)。

小吐槽:Go 的设置体验糟糕。我知道它意味着有意见,但像工作区放置和设置路径这样简单的事情......这应该由安装过程来处理,并让安装构建工具的开发人员更清楚。嘘!

您可以在 $GOPATH/src/github.com/* 中创建符号链接并将其指向您现有的项目目录。

创建 符号链接:

~ >> ln -s $HOME/code/example-project $GOPATH/src/github.com/example-project

验证它有效

~/go/src/github.com >> ls -l
total 0
drwxr-xr-x  3 trex  staff  96 Feb  9 10:20 google
lrwxr-xr-x  1 trex  staff  30 Feb  9 15:58 example-project -> /Users/trex/code/example-project

现在您可以在 example-project 中开展您的业务,例如

~ code/example-project >> make