Error: dynamodb global secondary index does not project
Answered by Rafal Wilinski
What's Causing This Error
This error message indicates an issue with how the global secondary index (GSI) is used in a DynamoDB table.
Specifically, it indicates that the GSI is not projecting the necessary attributes. This can happen if the GSI is not correctly configured if the GSI is not being updated with the required attributes.
Solution: Here's How To Resolve It
To solve this error, check the configuration of the GSI to ensure that it is correctly set up and projecting the necessary attributes.
Hence, when creating the GSI, specify the attributes you want to project using the Projection property.
import boto3 # Instantiate a client dynamodb = boto3.client('dynamodb', region_name='us-west-2') # Define the parameters table_name = "my_table" gsi_name = "my_gsi" attributes_to_project = ["attribute1", "attribute2"] gsi_params = { 'Attribute_definitions': [ { 'Attribute_name': 'attribute1', 'attribute_type': 'S' }, { 'attribute_name': 'attribute2', 'attribute_type': 'S' }, ], 'key_schema': [ { 'attribute_name': 'attribute1', 'key_type': 'HASH' }, { 'attribute_name': 'attribute2', 'key_type': 'RANGE' } ], 'projection': { 'projection_type': 'INCLUDE', 'non_key_attributes': attributes_to_project }, 'provisioned_throughput': { 'read_capacity_units': 5, 'write_capacity_units': 5 } } # Create the GSI dynamodb.create_table(TableName=table_name, GlobalSecondaryIndexes=[{'IndexName': gsi_name, **gsi_params}
Other Common DynamoDB Errors (with Solutions)
- dynamodb trigger no records processed
- DynamoDB Error All Attributes Must Be Indexed
- DynamoDB Scan Not Working
- DynamoDB Local NoClassDefFoundError
- DynamoDB Error 413
- DynamoDB Auto Scaling Not Working
- dynamodb 1 validation error detected value
- DynamoDB Not Supported Requires @DynamoDBTyped Or @DynamoDBTypeConverted
- DynamoDB Local Cannot Create Preexisting Table
- Unable to start DynamoDB Local process
- dynamodb cannot read property 's' of undefined
- ConfigError: Missing region in config
- 'dynamodb' object has no attribute 'table'
- DynamoDB Expression Not Null
- DynamoDB Invalid UpdateExpression Syntax Error Token
Tired of AWS Console? Try Dynobase.
Try 7-day free trial. No credit card needed.
Product Features
DynamoDB Tools
DynamoDB Info
© 2024 Dynobase