Scan - AWS AppSync

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Scan

Mit dem Scan Anforderungszuordnungsdokument können Sie den AWS AppSync DynamoDB-Resolver anweisen, eine Scan Anfrage an DynamoDB zu stellen, und Sie können Folgendes angeben:

  • Ein Filter zum Ausschließen von Ergebnissen

  • Welcher Index verwendet werden soll

  • Wie viele Elemente zurückgegeben werden sollen

  • Ob Consistent-Lesevorgänge verwendet werden sollen

  • Paginierungs-Token

  • Parallele Scans

Das Scan-Zuweisungsdokument weist die folgende Struktur auf:

{ "version" : "2017-02-28", "operation" : "Scan", "index" : "fooIndex", "limit" : 10, "consistentRead" : false, "nextToken" : "aPaginationToken", "totalSegments" : 10, "segment" : 1, "filter" : { ... }, "projection" : { ... } }

Die Felder sind wie folgt definiert:

Felder scannen

version

Die Version der Vorlagedefinition. Aktuell werden 2017-02-28 und 2018-05-29 unterstützt. Dieser Wert ist erforderlich.

operation

Der DynamoDB DynamoDB-Vorgang. Um die Scan-DynamoDB-Operation durchzuführen, muss diese auf Scan gesetzt sein. Dieser Wert ist erforderlich.

filter

Ein Filter, mit dem die Ergebnisse aus DynamoDB gefiltert werden können, bevor sie zurückgegeben werden. Weitere Informationen zu Filtern finden Sie unter Filter. Dies ist ein optionales Feld.

index

Der Name des abzufragenden Indexes. Der DynamoDB-Abfragevorgang ermöglicht es Ihnen, zusätzlich zum Primärschlüsselindex auch lokale sekundäre Indizes und globale sekundäre Indizes nach einem Hashschlüssel zu durchsuchen. Falls angegeben, weist dies DynamoDB an, den angegebenen Index abzufragen. Wenn nicht angegeben, wird der Primärschlüsselindex abgefragt.

limit

Die maximale Anzahl der zu einem bestimmten Zeitpunkt auszuwertenden Elemente. Dies ist ein optionales Feld.

consistentRead

Ein boolescher Wert, der angibt, ob bei der Abfrage von DynamoDB konsistente Lesevorgänge verwendet werden sollen. Dieses Feld ist optional und standardmäßig auf false gesetzt.

nextToken

Das Paginierungs-Token für die Fortsetzung einer früheren Abfrage. Dieses wäre von einer vorherigen Abfrage erhalten worden. Dies ist ein optionales Feld.

select

Standardmäßig gibt der AWS AppSync DynamoDB-Resolver nur die Attribute zurück, die in den Index projiziert wurden. Wenn weitere Attribute erforderlich sind, kann dieses Feld festgelegt werden. Dies ist ein optionales Feld. Die unterstützten Werte sind:

ALL_ATTRIBUTES

Gibt alle Elementattribute aus der angegebenen Tabelle oder dem Index zurück. Wenn Sie einen lokalen sekundären Index abfragen, ruft DynamoDB für jedes übereinstimmende Element im Index das gesamte Element aus der übergeordneten Tabelle ab. Wenn der Index konfiguriert ist, um alle Elementattribute zu projizieren, können Sie alle Daten aus dem lokalen sekundären Index erhalten und das Abrufen ist nicht erforderlich.

ALL_PROJECTED_ATTRIBUTES

Nur bei der Abfrage eines Indexes erlaubt. Ruft alle Attribute ab, die in den Index projiziert wurden. Wenn der Index konfiguriert ist, um alle Attribute zu projizieren, entspricht dieser Rückgabewert der Angabe von ALL_ATTRIBUTES.

SPECIFIC_ATTRIBUTES

Gibt nur die in den s aufgeführten Attribute zurück. projection expression Dieser Rückgabewert entspricht der Angabe projection von 's' expression ohne Angabe eines Werts fürSelect.

totalSegments

Die Anzahl der Segmente zum Partitionieren der Tabelle, wenn ein paralleler Scan durchgeführt wird. Dieses Feld ist optional, muss aber angegeben werden, wenn segment angegeben ist.

segment

Das Tabellensegment in dieser Operation beim Durchführen eines parallelen Scans. Dieses Feld ist optional, muss aber angegeben werden, wenn totalSegments angegeben ist.

projection

Eine Projektion, die verwendet wird, um die Attribute anzugeben, die von der DynamoDB-Operation zurückgegeben werden sollen. Weitere Informationen zu Projektionen finden Sie unter Projektionen. Dies ist ein optionales Feld.

Die vom DynamoDB-Scan zurückgegebenen Ergebnisse werden automatisch in GraphQL und JSON primitive Typen konvertiert und sind im Mapping-Kontext () verfügbar. $context.result

Weitere Informationen zur DynamoDB-Typkonvertierung finden Sie unter Typsystem (Antwortzuordnung).

Weitere Informationen zu Vorlagen für die Antwortzuweisung finden Sie unter Übersicht über Resolver-Mapping-Vorlagen.

Die Ergebnisse weisen die folgende Struktur auf:

{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10 }

Die Felder sind wie folgt definiert:

items

Eine Liste mit den vom DynamoDB-Scan zurückgegebenen Elementen.

nextToken

Falls es mehr Ergebnisse gibt, nextToken enthält sie ein Paginierungstoken, das Sie in einer anderen Anfrage verwenden können. AWS AppSync verschlüsselt und verschleiert das von DynamoDB zurückgegebene Paginierungstoken. Damit sickern Daten aus Ihren Tabellen nicht versehentlich an den Aufrufer durch. Diese Paginierungs-Tokens können nicht über verschiedene Resolver hinweg verwendet werden.

scannedCount

Die Anzahl der Elemente, die von DynamoDB abgerufen wurden, bevor ein Filterausdruck (falls vorhanden) angewendet wurde.

Beispiel 1

Das folgende Beispiel ist eine Zuordnungsvorlage für die GraphQL-Abfrage:allPosts.

In diesem Beispiel werden alle Einträge in der Tabelle zurückgegeben.

{ "version" : "2017-02-28", "operation" : "Scan" }

Beispiel 2

Das folgende Beispiel ist eine Zuordnungsvorlage für die GraphQL-Abfrage:postsMatching(title: String!).

In diesem Beispiel werden alle Einträge in der Tabelle zurückgegeben, bei denen der Titel mit dem title-Argument beginnt.

{ "version" : "2017-02-28", "operation" : "Scan", "filter" : { "expression" : "begins_with(title, :title)", "expressionValues" : { ":title" : $util.dynamodb.toDynamoDBJson($context.arguments.title) }, } }

Weitere Informationen zu DynamoDB finden Sie in der Scan API APIDynamoDB-Dokumentation.