我有一個 Go Lambda 函數(shù)。我想將該功能托管在 Docker 映像/容器中,以便我可以在本地對其進行測試。在這項工作中,我遵循了此處提供的說明。根據(jù)這些說明,我有以下文件:.文件go.modgo.sum主程序這些文件包含以下內(nèi)容:Dockerfile(本節(jié)中 Dockerfile 的副本)FROM alpine as build
# install build tools
RUN apk add go git
RUN go env -w GOPROXY=direct
# cache dependencies
ADD go.mod go.sum ./
RUN go mod download
# build
ADD . .
RUN go build -o /main
# copy artifacts to a clean image
FROM alpine
COPY --from=build /main /main
ENTRYPOINT [ "/main" ]go.mod(這個 go.mod的更新版本)module maingo 1.18require (
github.com/aws/aws-lambda-go v1.32.1
github.com/aws/aws-sdk-go v1.44.60)
require github.com/jmespath/go-jmespath v0.4.0 // indirect我可以成功運行:go mod tidygo build我還可以使用以下方法成功構(gòu)建和運行我的 Docker 映像:docker build -t lambda-fn .
docker run -d -v ~/.aws-lambda-rie:/aws-lambda --entrypoint /aws-lambda/aws-lambda-rie -p 9000:8080 lambda-fn:latest /mainlambda-fn我可以在 Docker 桌面中看到一個基于所列圖像的容器,狀態(tài)為“正在運行”。但是,當我發(fā)送以下 cURL 請求時,沒有任何反應(yīng):curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'我期望根據(jù)handleRequest函數(shù)的內(nèi)容編寫一些日志。我究竟做錯了什么?
1 回答

白豬掌柜的
TA貢獻1893條經(jīng)驗 獲得超10個贊
如果您以惡魔模式 (-d) 運行,則看不到日志。
刪除 -d 并重新運行命令
這是由于空的處理程序注冊。您可以通過傳遞額外參數(shù)來設(shè)置處理程序名稱
docker run -d -v ~/.aws-lambda-rie:/aws-lambda --entrypoint /aws-lambda/aws-lambda-rie -p 9000:8080 lambda-fn:latest /main handleRequest
- 1 回答
- 0 關(guān)注
- 146 瀏覽
添加回答
舉報
0/150
提交
取消