没有必需的模块提供包 github.com/aws/aws-sdk-go/aws
no required module provides package github.com/aws/aws-sdk-go/aws
为什么我会收到此错误消息?我是使用 aws sam 和 Go 的初学者。
Error: GoModulesBuilder:Build - Builder Failed: main.go:9:2: no required module provides package github.com/aws/aws-sdk-go/aws; to add it:
go get github.com/aws/aws-sdk-go/aws
main.go:10:2: no required module provides package github.com/aws/aws-sdk-go/aws/session; to add it:
go get github.com/aws/aws-sdk-go/aws/session
main.go:11:2: no required module provides package github.com/aws/aws-sdk-go/service/dynamodb; to add it:<br>
go get github.com/aws/aws-sdk-go/service/dynamodb
这是我在 vscode 中的代码
主包
import (
"logs"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/dynamodb"
)
您需要正确设置您的 Go 项目以进行依赖管理。首先按照 Tutorial: Get started with Go:
中描述的初始化项目的步骤
go mod init YOUR_PROJECT_NAME
然后添加你的依赖:
go get github.com/aws/aws-sdk-go/aws
go get github.com/aws/aws-sdk-go/service/dynamodb
如果您已经有 go.mod 文件 运行 下面的命令可以找到软件包 xxx/xxx
的模块
go mod tidy
问题是 AWS SAM 创建了一个文件夹结构,其中 SAM 项目的根目录包含 Makefile
AWS 让您在其中构建可执行文件,但应用程序的入口点位于子文件夹中(即 hello-world
文件夹)。
您必须 运行 go mod init
和 go mod tidy
来自与 main.go
和 go.mod
文件相同的位置,而不是来自 SAM 的根文件夹申请。
因此,对于使用 go 学习 SAM 的任何其他人,请尝试在 运行 go 命令之前更改到包含您的 go 文件的子文件夹。
对于使用 AWS SAM
和 vs-code
遇到此问题的人,如果您的文件夹如下所示:
├── Makefile
├── README.md
├── hello-world
│ ├── go.mod
│ ├── go.sum
│ ├── main.go
│ └── main_test.go
└── template.yaml
尝试将移动 go.mod
和 go.sum
到根文件夹(打开 vs-code 的位置),如下所示:
├── Makefile
├── README.md
├── go.mod
├── go.sum
├── hello-world
│ ├── main.go
│ └── main_test.go
└── template.yaml
为什么我会收到此错误消息?我是使用 aws sam 和 Go 的初学者。
Error: GoModulesBuilder:Build - Builder Failed: main.go:9:2: no required module provides package github.com/aws/aws-sdk-go/aws; to add it:
go get github.com/aws/aws-sdk-go/aws
main.go:10:2: no required module provides package github.com/aws/aws-sdk-go/aws/session; to add it:
go get github.com/aws/aws-sdk-go/aws/session
main.go:11:2: no required module provides package github.com/aws/aws-sdk-go/service/dynamodb; to add it:<br>
go get github.com/aws/aws-sdk-go/service/dynamodb
这是我在 vscode 中的代码 主包
import (
"logs"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/dynamodb"
)
您需要正确设置您的 Go 项目以进行依赖管理。首先按照 Tutorial: Get started with Go:
中描述的初始化项目的步骤go mod init YOUR_PROJECT_NAME
然后添加你的依赖:
go get github.com/aws/aws-sdk-go/aws
go get github.com/aws/aws-sdk-go/service/dynamodb
如果您已经有 go.mod 文件 运行 下面的命令可以找到软件包 xxx/xxx
的模块go mod tidy
问题是 AWS SAM 创建了一个文件夹结构,其中 SAM 项目的根目录包含 Makefile
AWS 让您在其中构建可执行文件,但应用程序的入口点位于子文件夹中(即 hello-world
文件夹)。
您必须 运行 go mod init
和 go mod tidy
来自与 main.go
和 go.mod
文件相同的位置,而不是来自 SAM 的根文件夹申请。
因此,对于使用 go 学习 SAM 的任何其他人,请尝试在 运行 go 命令之前更改到包含您的 go 文件的子文件夹。
对于使用 AWS SAM
和 vs-code
遇到此问题的人,如果您的文件夹如下所示:
├── Makefile
├── README.md
├── hello-world
│ ├── go.mod
│ ├── go.sum
│ ├── main.go
│ └── main_test.go
└── template.yaml
尝试将移动 go.mod
和 go.sum
到根文件夹(打开 vs-code 的位置),如下所示:
├── Makefile
├── README.md
├── go.mod
├── go.sum
├── hello-world
│ ├── main.go
│ └── main_test.go
└── template.yaml