gpt4 book ai didi

javascript - 如何在 Node 中将 DynamoDB 表从 PROVISIONED 更新为 PAY_PER_REQUEST?

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:26 25 4
gpt4 key购买 nike

我有一个现有的 DDB 表,它使用 BillingMode: PROVISIONEDProvisionedThroughput:{...}。我想将其更改为使用 BillingMode: PAY_PER_REQUEST 但这样做时出现以下错误:

TypeError: Cannot read property 'ReadCapacityUnits' of undefined

我发送到 updateTable 调用的参数是:

{
"TableName": "my-table-name",
"AttributeDefinitions": [
{
"AttributeType": "S",
"AttributeName": "name"
}
],
"BillingMode": "PAY_PER_REQUEST"
}

我还尝试发送带有 ReadCapacityUnitsWriteCapacityUnitsProvisionedThroughput 字段,但返回了:

ValidationException: One or more parameter values were invalid: ProvisionedThroughput cannot be specified when BillingMode is PAY_PER_REQUEST

...这是我从阅读 the docs 中所期望的.

知道我做错了什么吗?

最佳答案

事实证明这是我的错误...为了回答这个问题,你发送的正是我上面发布的内容,或者只是

{
"TableName": "my-table-name",
"BillingMode": "PAY_PER_REQUEST"
}

...正如 Nadav Har'El 指出的那样,“AttributeDefinitions”是不必要的。

问题是,在我的 lambda 版本中,我根据已更改的内容构建要发送的对象,并包含 ProvisionedThroughput: undefined ,这导致 SDK 尝试验证该对象。我很长一段时间都没有看到这个问题,因为 console.log(JSON.stringify()) 删除了任何值为 undefined 的键。用另一种方式说明这一点:

$ node
> var a = {foo:1, bar:undefined}
undefined
> a
{ foo: 1, bar: undefined }
> console.log(JSON.stringify(a))
{"foo":1}
undefined

关于javascript - 如何在 Node 中将 DynamoDB 表从 PROVISIONED 更新为 PAY_PER_REQUEST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56277868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com