问题标签 [aws-lambda-go]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3998 浏览

unit-testing - 模拟 context.Context 以测试 lambdacontext.FromContext

我正在使用aws-sdk-goaws-lambda-go构建一个 aws lambda ,但遇到了一个小问题。

我想测试我的 lambda 处理程序。为此,我需要模拟一个有效的context.Context ,其中包含lamdacontext.LambdaContext的有效属性并满足lambdacontext.FromContext

我似乎无法找到一种方法来构建这样的模拟,因为lambdacontext.FromContext总是返回 me _, false

这是我的主要内容,在events.SNSEvent事件上有一个简单的处理程序:

这是我的测试handleRequest

我还尝试了其他模拟,例如将带有这些参数的结构传递给它等,但我总是得到false. 例如,我也尝试过:

我检查了来源,FromContext我一直在摸不着头脑。

当然,false即使我只是将 a 传递context.Background()给它,它也会返回。

关于我应该如何建立一个有效context.Context的让lambdacontext.FromContext返回的任何想法true

0 投票
2 回答
12741 浏览

amazon-web-services - 运行 AWS Golang Lambda 时出现 exec 格式错误

我有一个 go 应用程序,结构如下:

命令
|
报告
|
main.go

main.go 导入internal/reports包并有一个函数 main(),它代表对aws-lambda-go/lambda.Start()函数的调用。

代码正在构建运行命令(片段):

reports.zipTest上传到 AWS Lambda,当按下按钮时会抛出错误:

reports设置为 Lambda 的Handler.

此外,代码构建在 Ubuntu 14.04 机器上,作为aws/codebuild/ubuntu-base:14.04Docker Image 的一部分,位于AWS CodeBuild上。这里应该没有环境问题,即使错误表明存在跨平台问题。

有任何想法吗?

0 投票
1 回答
175 浏览

aws-lambda - 区分相同 AWS lambda 的两个实例

我需要唯一标识我从 lambda 发送给某个消费者的消息。我可以利用哪些唯一信息来为我发送的每条消息创建唯一 ID?

  • 我可以为每个请求发送几条消息(lambda 运行)
  • 我可以有几个相同的 lambda 实例同时运行并发送不同的消息

我正在处理的消息具有唯一 ID,但它可以在流程中更改。

GoLang,如果重要的话。

0 投票
2 回答
1119 浏览

aws-lambda - 我们可以使用 Go 语言编写的 lambda 函数向 SNS 主题发布消息吗?

我有一个用 Golang 编写的 lambda 函数。我试图在执行 lambda 之前从 lambda 函数向 SNS 主题发布消息。有可能这样做吗?

0 投票
1 回答
4223 浏览

amazon-web-services - 无法通过 aws cli 从 localstack 调用 lambda 函数

我已经推送了 lambda 函数,正如我在 localstack 中看到的那样,基于以下命令/输出

当我尝试执行它时,如下所示,我收到一个错误,我的 localstack 正在一个 docker 容器中运行

aws --endpoint-url= http://localhost:4574 lambda 调用 --function-name books1 /tmp/output.json

这个 lambda 是编写的Go,当我在真正的 AWS 上手动执行它时,它工作得很好。

0 投票
1 回答
6700 浏览

go - AWS Lambda Go 函数在通过 API GW 调用时未获取请求正文

首先,有人可能会说这个问题与HTTP request body not getting to AWS lambda function via AWS API GatewayGetting json body in aws Lambda via API gateway非常相似

但是,这些问题都没有解决使用 Golang 的问题,我遇到的问题是找到event与 Node.js 文档中随处使用的参数的等效项。

这是我的 Lambda 函数:

问题:MyReturn从 API GW 调用时,对象未填充任何值。该行log.Print("Called by ", name)不会将任何内容附加到Called by字符串。

对 API GW 的请求:

这是在纯 JS 中执行的,如下所示:

然而,从 AWS Lambda 控制台对其进行测试时,完全相同的主体仍然有效。

身体:

0 投票
0 回答
410 浏览

amazon-web-services - 当我尝试 ping 数据库连接时,我的 Lambda 函数超时

这似乎是一件非常简单的事情,但我的连接每次都会超时。

这是 Lambda 函数中的代码(用 Go 编写)

显然我已经删除了真实的用户名、密码、地址和数据库名称,但我已经验证它们都是正确的(我可以通过 MySQLWorkbench 使用相同的详细信息连接到数据库)。

我假设它与权限或什么有关?我的 Lambda 函数确实有权访问完整的 RDS 功能。

我还尝试删除 defer db.Close() 认为它可能会无限期地打开连接,但这似乎并没有太大变化。

我让它在没有db.Ping 的情况下工作,因为 sql.Open 实际上并没有创建连接。

我是 AWS 的新手,所以我无法弄清楚如何调试它。我在哪里可以找到显示阻塞位置的记录事件?还是我在这里建立的连接有问题?

0 投票
1 回答
1188 浏览

aws-lambda - AWS Lambda Go:VM 在挂载文件夹时出错,/var/task/main 没有这样的文件或目录。如何解决?

我创建了一个“hellogo”lambda,并尝试使用在本地运行它

sam package sam deploy sam local start-api 访问:http://localhost:3000/hellogo

docker 在首选项中共享 hellogo 文件夹。

访问时,我从 docker 看到以下错误,我需要做什么来解决这个问题?

在此处输入图像描述

更多细节:

山姆包

山姆部署

山姆本地启动-api

在 aws 中部署时我看到同样的错误 在此处输入图像描述

0 投票
0 回答
58 浏览

aws-lambda - 从用 go 编写的 lambda 调用 python 应用程序

我正在完全在 golang 中开发基于 aws 的应用程序,尽管我有一段 python 代码需要在 lambda 函数中作为单独的子进程调用。

python 代码是作为 CLI 应用程序编写的,很难从中制作 lambda,所以我想在我的基于 golang 的 lambda 函数中将它作为子进程运行。

有没有办法做到这一点?据我所知,我可以创建一个图层,但是如何将 python 安装到该图层?

0 投票
1 回答
753 浏览

amazon-web-services - 找不到 Golang 的 API 网关映射模板

我在 AWS API Gateway 上为 Twilio 创建了一个 webhook,它以application/x-www-form-urlencodedContent-Type 发送请求。我无法为 Golang 编写或找到映射模板。我正在关注此文档 -用于创建 API 网关的链接。我目前正在使用文档中使用的以下模板 -

我正在使用的 API Gateway 映射模板:

API Gateway 映射模板创建的 JSON:

Lambda 代码(Golang)

API 网关日志

Lambda 函数日志

在 Lambda 日志中,我可以看到只有创建的 JSON 主体被映射到events.APIGatewayProxyRequest,而不是其他参数。原因是映射模板创建的JSON不是以下格式 -

如果有人能指出我的相关文件,我将不胜感激。欢迎提出建议。