【发布时间】:2018-05-25 17:07:25
【问题描述】:
我正在使用无服务器框架来编写 AWS lambda 函数。我需要从 HTML 页面获取表单数据并使用 AWS lambda 将其保存到 Dynamodb。所以我也在 nodejs 和 API 端点中编写了代码。最后,我将应用程序部署到 AWS。因此,当我尝试同时使用 CURL 和 Postman 发布数据时,它会显示“内部服务器错误”
以下是相关代码sn-ps。
handler.js
const params = {
TableName: process.env.DYNAMODB_TABLE,
Item: {
id: uuid.v1(),
name: data.name,
phone: data.phone,
checked: false,
createdAt: timestamp,
updatedAt: timestamp,
},
};
serverless.yml
provider:
name: aws
runtime: nodejs6.10
environment:
DYNAMODB_TABLE: ${self:service}-${opt:stage, self:provider.stage}
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource: "arn:aws:dynamodb:${opt:region, self:provider.region}:*:table/${self:provider.environment.DYNAMODB_TABLE}"
我不确定在哪里定义 Dynamo 表名称,以及它是否是在自动运行代码时创建的?我关注了这个 github repo - https://github.com/serverless/examples/tree/master/aws-node-rest-api-with-dynamodb
【问题讨论】:
-
CloudWatch 上显示的错误是什么?
-
这个错误可能是因为你还没有创建DynamoDB表。
标签: node.js aws-lambda aws-sdk serverless