Lorsque je reçois un événement de flux dynamodb dans TypeScript, je vois ci-dessous Schema: existe une définition de type que je peux utiliser pour cet événement dans Typecript? P> P> >
3 Réponses :
En Javascript, vous pouvez utiliser AWS .Dynamodb.converter.unmarshall à la forme persistée de lamarshall Dynamodb dans un objet. P>
Amazon DynamoDB Datamapper tire parti de @ AWS / DYNAMODB-DATA-Marshaller CODE> et
@ AWS / DYNAMODB-Expressions CODE> Les paquets et permet une interopérabilité facile entre les classes de domaine de votre application et leur formulaire persisté dans Amazon Dynamodb. Votre travail consiste à créer la classe d'applications correspondante et à ajouter des propriétés au prototype de la classe. P>
Merci pour votre réponse. J'ai trouvé une autre bibliothèque awslabs.github.io/dynamodub -Data-mapper-js / packages / ... qui ressemble à celui que vous avez posté. Cette bibliothèque provient également d'AWS GitHub. Je ne sais pas pourquoi ils libèrent deux bibliothèques pour faire une chose.
Y a-t-il une définition de type que je peux utiliser pour cet événement dans Typescript? P>
Si vous utilisez un AWS Lambda pour traiter les événements de flux Dynamo, vous pouvez trouver des définitions de type dans le fichier
@ Types / aws-lambda code> package. p>
xxx pré> Vous pouvez voir la définition de type complète ici dans Le repo GITUB pour @ Types / AWS-Lambda. P>
// http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_StreamRecord.html export interface StreamRecord { ApproximateCreationDateTime?: number; Keys?: { [key: string]: AttributeValue }; NewImage?: { [key: string]: AttributeValue }; OldImage?: { [key: string]: AttributeValue }; SequenceNumber?: string; SizeBytes?: number; StreamViewType?: 'KEYS_ONLY' | 'NEW_IMAGE' | 'OLD_IMAGE' | 'NEW_AND_OLD_IMAGES'; } // http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_Record.html export interface DynamoDBRecord { awsRegion?: string; dynamodb?: StreamRecord; eventID?: string; eventName?: 'INSERT' | 'MODIFY' | 'REMOVE'; eventSource?: string; eventSourceARN?: string; eventVersion?: string; userIdentity?: any; } // http://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-ddb-update export interface DynamoDBStreamEvent { Records: DynamoDBRecord[]; }
juste un addendum à la réponse déjà acceptée
// http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_StreamRecord.html export interface StreamRecord<T> { ApproximateCreationDateTime?: number; Keys?: { [key: string]: AttributeValue }; NewImage?: T; OldImage?: T; SequenceNumber?: string; SizeBytes?: number; StreamViewType?: 'KEYS_ONLY' | 'NEW_IMAGE' | 'OLD_IMAGE' | 'NEW_AND_OLD_IMAGES'; } // http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_Record.html export interface DynamoDBRecord<T> { awsRegion?: string; dynamodb?: StreamRecord<T>; eventID?: string; eventName?: 'INSERT' | 'MODIFY' | 'REMOVE'; eventSource?: string; eventSourceARN?: string; eventVersion?: string; userIdentity?: any; } // http://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-ddb-update export interface DynamoDBStreamEvent<T> { Records: DynamoDBRecord<T>[]; }