问题描述
我想使用DynamoDB本地docker在无服务器上进行培训。 但是,使用此代码,我得到了一个空表列表:
import { DynamoDB,Endpoint } from "aws-sdk";
export const handler = async (event,context,cb) => {
const ddb = new DynamoDB();
if (process.env["DYNAMO_LOCAL_ENDPT"]) {
ddb.endpoint = new Endpoint(process.env["DYNAMO_LOCAL_ENDPT"]);
// the local env variable = http://localhost:8000
}
const tables = await ddb.listTables().promise();
const response = {
statusCode: 200,body: JSON.stringify({
message: "Hello World!",tables,}),};
return response;
};
但是,如果我在命令上使用Powershell上的AWS CLI执行相同的操作,
aws dynamodb list-tables --endpoint-url http://localhost:8000
我在docker上的2个表得到正确的响应。
您能告诉我我的代码有什么问题吗?
解决方法
DynamoDB docker区域与您的AWS CLI中配置的区域相同。
即使您在本地工作,无服务器Yaml中的区域也必须相同(默认情况下为us-east-1)。