Я пытаюсь построить проект архитектуры микро-сервисов в Go.В настоящее время я использую Go 1.11, который поддерживает модули, поэтому я помещаю свой корневой каталог в произвольно выбранный каталог за пределами GOPATH
.
Если я правильно понимаю концепции архитектуры микро-сервисов, хотя мои микро-сервисы нуждаются в этомчтобы быть независимыми, они могут делиться зависимостями (и я не вижу другого способа сделать что-нибудь, не так ли?)
Ниже приведена моя структура каталогов:
.
├── go.mod
├── lambda
│ └── account_create
│ └── main.go
├── readme.md
└── types
├── account.go
├── location.go
├── order.go
├── pricing.go
├── product.go
└── types.go
Теперь поведение яожидается, что он сможет запустить go build lambda/account_create
и получить исполняемый файл с этой функциональностью, чтобы я мог передать его соответствующей лямбда-функции AWS.
Однако, когда я запускаю команду, я получаю:
can't load package: package lambda/account_create: unknown import path "lambda/account_create": cannot find module providing package lambda/account_create
Пожалуйста, объясните мне, почему это не работает, и дайте мне несколько советов о том, как должен выглядеть такой проект.
Большое спасибо!
Редактировать Вот мое lambda/account_create/main.go
содержимое файла:
package account_create
import (
"fmt"
"roasted.ro/pkg/types"
)
func main() {
account := types.UserAccount{Name: "Victor"}
fmt.Printf("Welcome %s", account.Name)
}