带有 DynamoDB 的无服务器框架:Lambda 函数有效,但数据尚未保存到 DynamoDB
Serverless framework with DynamoDB: Lambda function work, but data hasn't been saved to DynamoDB
我在处理一些无服务器框架和 DynamoDB 的问题。
我的 lambda 函数执行后,
context.succeed(result)
将 return 结果,
但没有写入 DynamoDB。
这里是 demo repo 的 link。
我读过这个
然后我将资源添加到 s-resources-cf.json
,
然后再次 serverless resources deploy
。
发送请求后,它仍然对 DynamoDB 没有做任何事情。
这是我做过的事情:
创建一个 table: posts
在特定区域
中使用主键
将 AdministratorAccess
附加到我的 IAM
角色(我知道这样做不好。)
将{"Effect": "Allow", "Action": ["*"], "Resource":"arn:aws:dynamodb:${region}:*:table/*"}
添加到s-resources-cf.json
我还有什么误解吗?
您的演示存储库似乎不包括 AWS SDK 和设置区域,如 Getting Started guide 中所述。即:
var AWS = require("aws-sdk");
var DOC = require("dynamodb-doc");
AWS.config.update({region: "us-west-1"});
var docClient = new DOC.DynamoDB();
...
请注意,dynamo-doc
几乎在一年前就已弃用。您可能想尝试使用 DynamoDB DocumentClient。此更新后的 API 具有更清晰的错误处理语义,可能有助于指出问题所在。
我在处理一些无服务器框架和 DynamoDB 的问题。
我的 lambda 函数执行后,
context.succeed(result)
将 return 结果,
但没有写入 DynamoDB。
这里是 demo repo 的 link。
我读过这个
然后我将资源添加到 s-resources-cf.json
,
然后再次 serverless resources deploy
。
发送请求后,它仍然对 DynamoDB 没有做任何事情。
这是我做过的事情:
创建一个 table:
posts
在特定区域 中使用主键
将
AdministratorAccess
附加到我的IAM
角色(我知道这样做不好。)将
{"Effect": "Allow", "Action": ["*"], "Resource":"arn:aws:dynamodb:${region}:*:table/*"}
添加到s-resources-cf.json
我还有什么误解吗?
您的演示存储库似乎不包括 AWS SDK 和设置区域,如 Getting Started guide 中所述。即:
var AWS = require("aws-sdk");
var DOC = require("dynamodb-doc");
AWS.config.update({region: "us-west-1"});
var docClient = new DOC.DynamoDB();
...
请注意,dynamo-doc
几乎在一年前就已弃用。您可能想尝试使用 DynamoDB DocumentClient。此更新后的 API 具有更清晰的错误处理语义,可能有助于指出问题所在。