Amazon dynamodb 正在创建DynamoDB表,但无法插入新项

Amazon dynamodb 正在创建DynamoDB表,但无法插入新项,amazon-dynamodb,boto,Amazon Dynamodb,Boto,我正在为脚本使用boto DynamoDBV2接口来创建和填充DynamoDB中的表。我的代码是这样的- my_table = Table.create(table_name, schema=[HashKey('key', data_type=STRING)], connection = self.connection) my_table.put_item(data={ 'key': 'somekey', 'value': value }) Ta

我正在为脚本使用boto DynamoDBV2接口来创建和填充DynamoDB中的表。我的代码是这样的-

my_table = Table.create(table_name, schema=[HashKey('key', data_type=STRING)], connection = self.connection)
my_table.put_item(data={
         'key': 'somekey',
         'value': value
      })
Table.create(table_name, schema=[HashKey('key', data_type=STRING)], connection = self.connection)
my_table = Table(table_name, self.connection)
my_table.put_item(data={
         'key': 'somekey',
         'value': value
      })
我已经创建了连接,当我运行它时,表被正确创建,我可以在AWS控制台中看到它。但在尝试将值放入表中时,出现错误“未找到请求的资源”

我还尝试单独读取表,然后插入如下值-

my_table = Table.create(table_name, schema=[HashKey('key', data_type=STRING)], connection = self.connection)
my_table.put_item(data={
         'key': 'somekey',
         'value': value
      })
Table.create(table_name, schema=[HashKey('key', data_type=STRING)], connection = self.connection)
my_table = Table(table_name, self.connection)
my_table.put_item(data={
         'key': 'somekey',
         'value': value
      })

但是在第二行仍然得到相同的错误。我缺少什么?

您的表在创建时不会立即准备就绪,您必须等待它变为活动状态,然后才能写入。我发现了一个例子,说明了如何做到这一点,但问题不是语言特定的,它适用于任何DynamoDB客户机


您可以在AWS管理控制台中将其视为表的“状态”,以确认或否认这一理论。

问题是,在创建表之后,您需要等待一段时间,然后再插入项。您可以使用
waitFor()
事件查找表创建完成的时间

AWS节点SDK示例:

const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB();

const createTableParams = {
  // parameters...
}

dynamodb.createTable(createTableParams, (err, data) => {
    if (err) return console.log(err, err.stack);

    const params = {
        TableName: 'MY_TABLE'
    };

    dynamodb.waitFor('tableExists', params, (err, data) => {
        if (err) console.log(err, err.stack);
        else     insertData();
    });    
});

您能否捕获并添加错误的完整回溯?