botocore.exceptions.ParamValidationError: - PullRequest
       8

botocore.exceptions.ParamValidationError:

0 голосов
/ 25 сентября 2019

Я пишу скрипт, который по сути создаст элемент в моей таблице DynamodB.Кажется, я получаю подписку

Я действительно не уверен, что делаю не так, я следовал документации по boto3.Мой сценарий выглядит следующим образом:

CLIENT = boto3.client(
'dynamodb',
aws_access_key_id=Env.AWS_ACCESS_KEY_ID,
aws_secret_access_key=Env.AWS_ACCESS_KEY_SECRET)

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Вы должны указать тип.

client.put_item(
    TableName='string',
    Item={
        'string': {
            'S': 'string',
            'N': 'string',
            'B': b'bytes',
            'SS': [
                'string',
            ],
            'NS': [
                'string',
            ],
            'BS': [
                b'bytes',
            ],
            'M': {
                'string': {'... recursive ...'}
            },
            'L': [
                {'... recursive ...'},
            ],
            'NULL': True|False,
            'BOOL': True|False
        }
    }

Например,

client.put_item(
    TableName='string',
    Item={
        'email': {
            'S': 'testmyemail@gmail.com'
        }
    }

Подробнее о документации .

1 голос
/ 25 сентября 2019

Я думаю, что вы пропустили имя таблицы в элементах.Попробуйте следующий фрагмент

CLIENT = boto3.client(
'dynamodb',
aws_access_key_id=Env.AWS_ACCESS_KEY_ID,
aws_secret_access_key=Env.AWS_ACCESS_KEY_SECRET)


class AWSDynamoUtils:
def __init__(self):
    print('Setup')

@staticmethod
def add_delegate():
    CLIENT.put_item(
        TableName='invitation-table',
        Item={
             invite-dict: { 'M': {
                               "invitation_id": {"S": "199fd741bca3"},
                                "email": {"S": "testmyemail@gmail.com"},
                                "firstName": {"S": "Developer"}, 
                               "lastName": {"S": "Developer"}      
                                  }
                          }
               }

    )

user = AWSDynamoUtils.add_delegate()

...