Error: dynamodb global secondary index does not project
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 local error unable to access JAR file dynamodblocal.jar
- dynamodb can not resolve withkeyconditionexpression
- dynamodb cannot read property 's' of undefined
- DynamoDB TTL Not Working
- CORS Error DynamoDB
- DynamoDB Missing Authentication Token
- DynamoDB Local Missing Authentication Token
- aws lambda dynamodb nodejs not working after few puts
- boto3 dynamodb unable to locate credentials
- failed to list tables not authorized dynamodb
- dynamodb atomic counter not working
- comparison operator does not return all attributes dynamodb
- DynamoDB Expression Not Null
- requested resource not found aws dynamodb
- could not unconvert attribute dynamodb
Spend less time in the AWS console, use Dynobase.
First 7 days are on us. No strings attached.
Product Features
DynamoDB Tools
DynamoDB Info
© 2023 Dynobase