View a markdown version of this page

Interrogez une table DynamoDB pour les éléments TTL à l'aide d'un AWS Kit SDK - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interrogez une table DynamoDB pour les éléments TTL à l'aide d'un AWS Kit SDK

Les exemples de code suivants montrent l’interrogation d’éléments TTL.

Java
SDK pour Java 2.x

Expression filtrée par requête pour rassembler des éléments TTL dans une table DynamoDB à l'aide de. AWS SDK for Java 2.x

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.AttributeValue; import software.amazon.awssdk.services.dynamodb.model.DynamoDbException; import software.amazon.awssdk.services.dynamodb.model.QueryRequest; import software.amazon.awssdk.services.dynamodb.model.QueryResponse; import software.amazon.awssdk.services.dynamodb.model.ResourceNotFoundException; import java.util.Map; import java.util.Optional; final QueryRequest request = QueryRequest.builder() .tableName(tableName) .keyConditionExpression(KEY_CONDITION_EXPRESSION) .filterExpression(FILTER_EXPRESSION) .expressionAttributeNames(expressionAttributeNames) .expressionAttributeValues(expressionAttributeValues) .build(); try (DynamoDbClient ddb = dynamoDbClient != null ? dynamoDbClient : DynamoDbClient.builder().region(region).build()) { final QueryResponse response = ddb.query(request); System.out.println("Query successful. Found " + response.count() + " items that have not expired yet."); // Print each item response.items().forEach(item -> { System.out.println("Item: " + item); }); return 0; } catch (ResourceNotFoundException e) { System.err.format(TABLE_NOT_FOUND_ERROR, tableName); throw e; } catch (DynamoDbException e) { System.err.println(e.getMessage()); throw e; }
  • Pour plus d’informations sur l’API, consultez Requête dans la référence d’API AWS SDK for Java 2.x .

JavaScript
SDK pour JavaScript (v3)

Expression filtrée par requête pour rassembler des éléments TTL dans une table DynamoDB à l'aide de. AWS SDK pour JavaScript

import { DynamoDBClient, QueryCommand } from "@aws-sdk/client-dynamodb"; import { marshall, unmarshall } from "@aws-sdk/util-dynamodb"; export const queryFiltered = async (tableName, primaryKey, region = 'us-east-1') => { const client = new DynamoDBClient({ region: region, endpoint: `https://dynamodb.${region}.amazonaws.com` }); const currentTime = Math.floor(Date.now() / 1000); const params = { TableName: tableName, KeyConditionExpression: "#pk = :pk", FilterExpression: "#ea > :ea", ExpressionAttributeNames: { "#pk": "primaryKey", "#ea": "expireAt" }, ExpressionAttributeValues: marshall({ ":pk": primaryKey, ":ea": currentTime }) }; try { const { Items } = await client.send(new QueryCommand(params)); Items.forEach(item => { console.log(unmarshall(item)) }); return Items; } catch (err) { console.error(`Error querying items: ${err}`); throw err; } } // Example usage (commented out for testing) // queryFiltered('your-table-name', 'your-partition-key-value');
  • Pour plus d’informations sur l’API, consultez Requête dans la référence d’API AWS SDK pour JavaScript .

Python
Kit SDK for Python (Boto3)

Expression filtrée par requête pour rassembler des éléments TTL dans une table DynamoDB à l'aide de. AWS SDK pour Python (Boto3)

from datetime import datetime import boto3 def query_dynamodb_items(table_name, partition_key): """ :param table_name: Name of the DynamoDB table :param partition_key: :return: """ try: # Initialize a DynamoDB resource dynamodb = boto3.resource("dynamodb", region_name="us-east-1") # Specify your table table = dynamodb.Table(table_name) # Get the current time in epoch format current_time = int(datetime.now().timestamp()) # Perform the query operation with a filter expression to exclude expired items # response = table.query( # KeyConditionExpression=boto3.dynamodb.conditions.Key('partitionKey').eq(partition_key), # FilterExpression=boto3.dynamodb.conditions.Attr('expireAt').gt(current_time) # ) response = table.query( KeyConditionExpression=dynamodb.conditions.Key("partitionKey").eq(partition_key), FilterExpression=dynamodb.conditions.Attr("expireAt").gt(current_time), ) # Print the items that are not expired for item in response["Items"]: print(item) except Exception as e: print(f"Error querying items: {e}") # Call the function with your values query_dynamodb_items("Music", "your-partition-key-value")
  • Pour de plus amples informations sur l’API, consultez Requête dans la référence d’API AWS du kit SDK pour Python (Boto3).

Pour obtenir la liste complète des guides de développement du AWS SDK et des exemples de code, consultezUtilisation de DynamoDB avec un AWS Kit SDK. Cette rubrique comprend également des informations sur le démarrage et sur les versions précédentes du kit SDK.