Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS CLI DynamoDB向现有表添加非键属性_Amazon Web Services_Amazon Dynamodb_Aws Cli - Fatal编程技术网

Amazon web services AWS CLI DynamoDB向现有表添加非键属性

Amazon web services AWS CLI DynamoDB向现有表添加非键属性,amazon-web-services,amazon-dynamodb,aws-cli,Amazon Web Services,Amazon Dynamodb,Aws Cli,我正在从事一个云计算类项目,使用AWS命令行界面在DynamoDB中插入一个表。我一直坚持的步骤是将其他非关键属性添加到表中。我阅读了有关添加属性的帮助部分,并得出以下结论: aws dynamodb put-item \ --table-name Sensors \ --item '{"SensorDescription": {"S": "A"}, \ "ImageFile": {"S": &q

我正在从事一个云计算类项目,使用AWS命令行界面在DynamoDB中插入一个表。我一直坚持的步骤是将其他非关键属性添加到表中。我阅读了有关添加属性的帮助部分,并得出以下结论:

aws dynamodb put-item \
--table-name Sensors \
--item '{"SensorDescription": {"S": "A"}, \
"ImageFile": {"S": "file1"}, \
"SampleRate": {"N": "100"}, \
"Locations": {"L": "Aberdeen MD, Warren MI, Orlando FL"} \
--return-consumed-capacity TOTAL
    aws dynamodb put-item \
    --table-name Sensors \
    --item '{"Sensor": {"S", "Sensor 1"},
    "SensorDescription": {"S": "A"},
    "ImageFile": {"S": "file1"},
    "SampleRate": {"N": "100"},
    "Locations": {"L": [{"S": "Aberdeen MD"}, {"S": "Warren MI"}, {"S": "Orlando FL"}]}}' \
    --return-consumed-capacity TOTAL
我尝试了通过AWS帮助找到的批写项和重新格式化示例,但仍然存在问题。我已经使用Cloud9有一段时间了,但是DynamoDB对我来说是非常新的。非常感谢您的帮助。工作台传感器已创建,并具有以下信息:

vocstartsoft:~/environment $ aws dynamodb describe-table --table-name Sensors
{
    "Table": {
        "AttributeDefinitions": [
            {
                "AttributeName": "Sensor",
                "AttributeType": "S"
            }
        ],
        "TableName": "Sensors",
        "KeySchema": [
            {
                "AttributeName": "Sensor",
                "KeyType": "HASH"
            }
        ],
        "TableStatus": "ACTIVE",
        "CreationDateTime": 1607909069.531,
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "ReadCapacityUnits": 5,
            "WriteCapacityUnits": 5
        },
        "TableSizeBytes": 0,
        "ItemCount": 0,
        "TableArn": "arn:aws:dynamodb:us-east-1:466773264882:table/Sensors",
        "TableId": "5ddc11bc-8167-4bfa-bbcc-96199954ba39"
    }
}

首先,请注意,您始终需要在中包含主键属性

另一方面,列表
位置
的定义不正确

另外,请注意,您在项目值的末尾遗漏了“”

请尝试以下操作:

aws dynamodb put-item \
--table-name Sensors \
--item '{"SensorDescription": {"S": "A"}, \
"ImageFile": {"S": "file1"}, \
"SampleRate": {"N": "100"}, \
"Locations": {"L": "Aberdeen MD, Warren MI, Orlando FL"} \
--return-consumed-capacity TOTAL
    aws dynamodb put-item \
    --table-name Sensors \
    --item '{"Sensor": {"S", "Sensor 1"},
    "SensorDescription": {"S": "A"},
    "ImageFile": {"S": "file1"},
    "SampleRate": {"N": "100"},
    "Locations": {"L": [{"S": "Aberdeen MD"}, {"S": "Warren MI"}, {"S": "Orlando FL"}]}}' \
    --return-consumed-capacity TOTAL
为了简单起见,并且为了避免shell延续字符的问题,您可以在文件中包含项信息,我们将其命名为
item.json

{
  "Sensor": {"S", "Sensor 1"},
  "SensorDescription": {"S": "A"},
  "ImageFile": {"S": "file1"},
  "SampleRate": {"N": "100"},
  "Locations": {
    "L": [
      {"S": "Aberdeen MD"},
      {"S": "Warren MI"},
      {"S": "Orlando FL"}
    ]
  }
}
并按如下方式应用命令:

aws dynamodb put-item \
    --table-name Sensors \
    --item file://item.json \
    --return-consumed-capacity TOTAL

谢谢对于分配,我应该使用CLI来创建表。我遇到了另一个问题。我收到以下错误:分析参数“--item”时出错:JSON无效:应使用双引号括起属性名:第1行第31列(char 30)。我最初以为它是说每个属性都需要括号,但当我添加括号时,它就不起作用了。不客气!不,恐怕新问题与您的列表
位置的定义有关。请看我修改过的答案。我希望这会有帮助。嗯……我改变了我的位置定义,但我仍然得到相同的错误。分析参数“--item”时出错:无效JSON:应使用双引号括起属性名称:第1行第31列(字符30)收到JSON:{“传感器”:{“S”:“传感器1”},\“传感器描述”:{“S”:“A”},\“图像文件”:{“S”:“文件1”},\“采样器”:{“N”:“100”},\“位置”:{“L:{“S”:“Aberdeen MD”},{“S”:“Warren MI”},{“S”:“Orlando”}]}}您使用的是
item.json
文件还是内联信息?请在命令shell中删除JSON中的\字符,请参阅我的答案。正如我告诉你的,至少对我来说,JSON中的shell延续字符是一场噩梦。。。另请参见:我使用的是内联b/c,分配需要它,但我正在切换到item.json。这似乎奏效了。谢谢如果您也要发布错误,这可能会有所帮助。然而,我认为您在
--item
参数中缺少了一个结束括号和一个引号。我认为该错误可能是json的某种意外结尾。我修复了缺少的括号和单引号,但我得到了以下错误:错误解析参数'--item':无效json:需要包含在双引号中的属性名称:第1行第31列(char 30)。我最初以为它是说每个属性都需要更多的括号,但当我添加括号时,它并没有起作用。