0

我想使用 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

我在码头上的 2 张桌子上得到了正确的回应。

你能告诉我我的代码有什么问题吗?

4

1 回答 1

0

DynamoDB docker 区域与您在 AWS CLI 中配置的区域相同。

即使您在本地工作,无服务器 Yaml 中的区域也必须相同(默认为 us-east-1)。

于 2020-10-24T17:56:57.503 回答