Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
PutItem
Il documento di mappatura delle PutItem richieste consente di indicare alla funzione AWS AppSync DynamoDB di effettuare una PutItem richiesta a DynamoDB e consente di specificare quanto segue:
-
La chiave dell'elemento in DynamoDB
-
L'intero contenuto della voce (costituita da
keyeattributeValues) -
Condizioni per la riuscita dell'operazione
La PutItem richiesta ha la seguente struttura:
type DynamoDBPutItemRequest = { operation: 'PutItem'; key: { [key: string]: any }; attributeValues: { [key: string]: any}; condition?: ConditionCheckExpression; customPartitionKey?: string; populateIndexFields?: boolean; _version?: number; };
I campi sono definiti come segue:
PutItem campi
-
operation -
L'operazione DynamoDB da eseguire. Per eseguire l'operazione
PutItemDynamoDB, il valore deve essere impostato suPutItem. Questo valore è obbligatorio. -
key -
La chiave dell'elemento in DynamoDB. Gli elementi DynamoDB possono avere una singola chiave hash o una chiave hash e una chiave di ordinamento, a seconda della struttura della tabella. Per ulteriori informazioni su come specificare un «valore digitato», vedi Type system (request mapping). Questo valore è obbligatorio.
-
attributeValues -
Gli altri attributi della voce da inserir in DynamoDB. Per ulteriori informazioni su come specificare un «valore digitato», vedere Type system (request mapping). Questo campo è facoltativo.
-
condition -
Una condizione per determinare se la richiesta deve riuscire o no in base allo stato dell'oggetto già incluso in DynamoDB. Se non viene specificata alcuna condizione, la richiesta
PutItemsovrascrive qualsiasi valore esistente per quella voce. Per ulteriori informazioni sulle condizioni, vedere Espressioni condizionali. Questo valore è facoltativo. -
_version -
Valore numerico che rappresenta l'ultima versione nota di un elemento. Questo valore è facoltativo. Questo campo viene utilizzato per il rilevamento dei conflitti ed è supportato solo nelle origini dati con versione.
customPartitionKey-
Se abilitato, questo valore di stringa modifica il formato dei
ds_pkrecordds_ske utilizzati dalla tabella delta sync quando il controllo delle versioni è abilitato (per ulteriori informazioni, consulta Rilevamento e sincronizzazione dei conflitti nella Guida per gli AWS AppSync sviluppatori). Se abilitata, è abilitata anche l'elaborazione dellapopulateIndexFieldsvoce. Questo campo è facoltativo. populateIndexFields-
Un valore booleano che, se abilitato insieme a
customPartitionKey, crea nuove voci per ogni record nella tabella delta sync, in particolare nelle colonnegsi_ds_pkegsi_ds_sk. Per ulteriori informazioni, consulta Rilevamento e sincronizzazione dei conflitti nella Guida per gli AWS AppSync sviluppatori. Questo campo è facoltativo.L'elemento scritto in DynamoDB viene automaticamente convertito nei tipi primitivi GraphQL e JSON ed è disponibile nel risultato del contesto ().
context.result
L'elemento scritto in DynamoDB viene automaticamente convertito nei tipi primitivi GraphQL e JSON ed è disponibile nel risultato del contesto (). context.result
Per ulteriori informazioni sulla conversione dei tipi DynamoDB, vedere Type system (response mapping).
Per ulteriori informazioni sui JavaScript resolver, consulta la panoramica dei resolver. JavaScript
Esempio 1
L'esempio seguente è un gestore di richieste di funzioni per una mutazione GraphQL. updateThing(foo: String!, bar: String!, name: String!, version:
Int!)
Se non esiste alcuna voce con la chiave specificata, viene creata. Se esiste, viene sovrascritta.
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { foo, bar, ...values} = ctx.args return { operation: 'PutItem', key: util.dynamodb.toMapValues({foo, bar}), attributeValues: util.dynamodb.toMapValues(values), }; }
Esempio 2
L'esempio seguente è un gestore di richieste di funzioni per una mutazione GraphQL. updateThing(foo: String!, bar: String!, name: String!, expectedVersion:
Int!)
Questo esempio verifica che l'elemento attualmente in DynamoDB abbia il campo impostato su. version expectedVersion
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { foo, bar, name, expectedVersion } = ctx.args; const values = { name, version: expectedVersion + 1 }; let condition = util.transform.toDynamoDBConditionExpression({ version: { eq: expectedVersion }, }); return { operation: 'PutItem', key: util.dynamodb.toMapValues({ foo, bar }), attributeValues: util.dynamodb.toMapValues(values), condition, }; }
Per ulteriori informazioni sull'API PutItem di DynamoDB, consulta la documentazione API di DynamoDB.