3

我正在关注 pynamodb 文档

class Thread(Model):
    class Meta:
        read_capacity_units = 1
        write_capacity_units = 1
        table_name = "Thread"
        region = 'us-west-1'
        host = "http://localhost:8888"

    forum_name = UnicodeAttribute(hash_key=True)
    subject = UnicodeAttribute(range_key=True)
    views = NumberAttribute(default=0)
    replies = NumberAttribute(default=0)
    answered = NumberAttribute(default=0)
    tags = UnicodeSetAttribute()
    last_post_datetime = UTCDateTimeAttribute(null=True)

# Delete the table
# print(Thread.delete_table())

# Create the table
if not Thread.exists():
    Thread.create_table(wait=True)

当我运行上面的代码时,它给出了错误:

DEBUG:pynamodb.connection.base:Calling DescribeTable with arguments {'TableName': 'Thread'}

并引发异常:

raise TableError("Unable to describe table: {0}".format(e), e)

TableError:无法描述表:无法找到凭据

如何提供 pynamodb aws_secret_key_id 和 aws_access 密钥。我正在使用 dynamodb local 在本地计算机上运行该示例。

我如何在 pynamodb 中提供凭证信息。我确实设置了 aws_secret_key_id 和 aws_access_key 的环境变量,但仍然是凭证异常

有没有办法在 pynamodb 中提供 aws_access_key_id 和 aws_secret_access_key 作为参数,如下例所示:-

此代码工作并创建数据库,但我想使用 pynamodb 库

dynamodb = boto3.resource('dynamodb',
                          region_name='us-west-2',
                          aws_access_key_id="access key",
                          aws_secret_access_key="secret acess key",
                          endpoint_url="http://localhost:8888")
4

3 回答 3

2

在 Meta 类中,包括

aws_access_key_id = "anything"
aws_secret_access_key = "fake"

您可以提供任何伪造的秘密访问密钥和访问密钥。

于 2020-05-24T06:41:24.253 回答
1

我遇到了类似的问题并遇到了同样的异常

解决方案是通过终端配置awsaws configure

然后查看配置aws configure list

但在我的情况下,我遇到了另一个问题(我使用的是 Ubuntu),当我使用时aws configure list我发现没有设置配置,但是当我使用 `sudo aws configure list' 时它可以工作。

所以我去了'~/.aws'并用命令更改了'credentials'文件的权限

sudo chmod +r credentials

然后我创建 dynamodb 并使测试生效的命令。

于 2020-02-21T14:02:39.963 回答
1

创建一个文件 ~/.aws/credentials 并输入

[default]
aws_access_key_id = 'foo'
aws_secret_access_key = 'bar

或者更好

无法找到凭据

于 2016-05-21T08:47:16.353 回答