не удалось поместить элемент в DynamoDB - PullRequest
0 голосов
/ 20 января 2020

Я хочу импортировать json файл в DynamoDB через AWS cli.

Я создал демонстрационную таблицу music с ключом раздела name.

Я ввел следующую команду:

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

Я получаю следующую ошибку:

Ошибка проверки параметра: Неверный тип для параметра Item.Count, значение: 503, тип:, допустимые типы: недопустимый тип для параметра Item.Items, значение: [OrderedDict ([('phoneNumber', OrderedDict ([('S', 'GpDxxZRJIlUuoqlULj6h0w ==')])),

ниже мой файл json, есть ли что-то не так с:

{
  "Items": [
    {
      "phoneNumber": {
        "S": "GpDxxZRJIlUuoqlULj6h0w=="
      },
      "isfisheye": {
        "N": "0"
      },
      "isdeleted": {
        "N": "0"
      },
      "contactFEId": {
        "S": "FE160959275516"
      },
      "ismerged": {
        "N": "0"
      },
      "source": {
        "S": "fromPhone"
      },
      "secondaryPhoneNumbers": {
        "L": [
          {
            "S": "n/a"
          }
        ]
      },
      "email": {
        "S": "XVRb5DlaaC8yIfujKnLsUkV+yv0Ry9nPeWN2iv9OQPY="
      },
      "name": {
        "S": "Sankey Vaishali"
      },
      "isBlocked": {
        "N": "0"
      },
      "contactId": {
        "S": "1528891536"
      },
      "sharedData": {
        "N": "2"
      },
      "secondaryEmails": {
        "L": [
          {
            "S": "n/a"
          }
        ]
      },
      "userId": {
        "S": "FE1411544738781"
      },
      "privacyEnabled": {
        "N": "1"
      }
    },
  ],
  "ScannedCount": 503
}

У меня есть сомнения, что формат json может быть неправильным. Может кто-нибудь помочь решить эту проблему, как я новичок до aws.

1 Ответ

1 голос
/ 20 января 2020

Ваш JSON выглядит как результат команды get-item. Ваши запросы не выполнены из-за неправильного формата - все объекты должны быть тегером с внутренними тегами DynamoDB, как описано здесь . Вы должны удалить Items и ScanndedCount из JSON следующим образом:

{
    "contactFEId": {
        "S": "FE160959275516"
    },
    "contactId": {
        "S": "1528891536"
    },
    "email": {
        "S": "XVRb5DlaaC8yIfujKnLsUkV+yv0Ry9nPeWN2iv9OQPY="
    },
    "isBlocked": {
        "N": "0"
    },
    "isdeleted": {
        "N": "0"
    },
    "isfisheye": {
        "N": "0"
    },
    "ismerged": {
        "N": "0"
    },
    "name": {
        "S": "Sankey Vaishali"
    },
    "phoneNumber": {
        "S": "GpDxxZRJIlUuoqlULj6h0w=="
    },
    "privacyEnabled": {
        "N": "1"
    },
    "secondaryEmails": {
        "L": [
            {
                "S": "n/a"
            }
        ]
    },
    "secondaryPhoneNumbers": {
        "L": [
            {
                "S": "n/a"
            }
        ]
    },
    "sharedData": {
        "N": "2"
    },
    "source": {
        "S": "fromPhone"
    },
    "userId": {
        "S": "FE1411544738781"
    }
}
...