

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.

# Lake FormationWorkflow für API-Operationen zur Anwendungsintegration
<a name="api-overview"></a>

Im Folgenden ist der Arbeitsablauf für API-Operationen zur Anwendungsintegration dargestellt:

1. Ein Benutzer sendet eine Abfrage oder Datenanforderung mithilfe einer integrierten Abfrage-Engine eines Drittanbieters. Die Abfrage-Engine nimmt eine IAM-Rolle an, die den Benutzer oder eine Benutzergruppe repräsentiert, und ruft vertrauenswürdige Anmeldeinformationen ab, die beim Aufrufen der API-Operationen für die Anwendungsintegration verwendet werden.

1.  Die Abfrage-Engine ruft auf`GetUnfilteredTableMetadata`, und wenn es sich um eine partitionierte Tabelle handelt, ruft die Abfrage-Engine auf, `GetUnfilteredPartitionsMetadata` um Metadaten und Richtlinieninformationen aus dem Datenkatalog abzurufen.

1.  Lake Formation führt die Autorisierung für die Anfrage durch. Wenn der Benutzer nicht über die entsprechenden Berechtigungen für die Tabelle verfügt, *AccessDeniedException*wird ausgelöst. 

1. Als Teil der Anfrage sendet die Abfrage-Engine die Filterung, die sie unterstützt. *Es gibt zwei Flags, die innerhalb eines Arrays gesendet werden können: *COLUMN\_PERMISSIONS und CELL\_FILTER\_PERMISSION*.* Wenn die Abfrage-Engine keine dieser Funktionen unterstützt und in der Tabelle für die Funktion eine Richtlinie vorhanden ist, wird a *PermissionTypeMismatchException*ausgelöst und die Abfrage schlägt fehl. Dies dient dazu, Datenlecks zu vermeiden.

1. Die zurückgegebene Antwort enthält Folgendes:
   + Das gesamte Schema für die Tabelle, sodass Abfrage-Engines es verwenden können, um die Daten aus dem Speicher zu analysieren.
   + Eine Liste der autorisierten Spalten, auf die der Benutzer Zugriff hat. Wenn die Liste der autorisierten Spalten leer ist, bedeutet dies, dass der Benutzer zwar über `DESCRIBE` Berechtigungen, aber nicht über `SELECT` Berechtigungen verfügt, und die Abfrage schlägt fehl.
   + Eine Flagge`IsRegisteredWithLakeFormation`, die angibt, ob Lake Formation Anmeldeinformationen für diese Ressourcendaten weitergeben kann. Wenn dies den Wert False zurückgibt, sollten die Anmeldeinformationen des Kunden für den Zugriff auf Amazon S3 verwendet werden. 
   +  Eine Liste, `CellFilters` falls vorhanden, die auf Datenzeilen angewendet werden sollen. Diese Liste enthält Spalten und einen Ausdruck zur Auswertung jeder Zeile. Dies sollte nur aufgefüllt werden, wenn *CELL\_FILTER\_PERMISSION* als Teil der Anfrage gesendet wird und ein Datenfilter für die Tabelle für den aufrufenden Benutzer vorhanden ist.

1. Nachdem die Metadaten abgerufen wurden, ruft die Abfrage-Engine `GetTemporaryGlueTableCredentials` oder `GetTemporaryGluePartitionCredentials` auf, um AWS Anmeldeinformationen zum Abrufen von Daten vom Amazon S3 S3-Standort abzurufen. 

1. Die Abfrage-Engine liest relevante Objekte aus Amazon S3, filtert die Daten auf der Grundlage der Richtlinien, die sie in Schritt 2 erhalten hat, und gibt die Ergebnisse an den Benutzer zurück. 

Die API-Operationen für die Anwendungsintegration für Lake Formation enthalten zusätzliche Inhalte für die Konfiguration der Integration mit Abfrage-Engines von Drittanbietern. Die Einzelheiten zu den Vorgängen finden Sie im [Abschnitt „Credential Vending API Operations“](aws-lake-formation-api-credential-vending.md).

 Dies `QuerySessionContext` ist eine Struktur, an die Abfrage-Engines Lake Formation für diese API-Operationen zur Anwendungsintegration zusätzlich senden können. Sie ermöglicht Lake Formation das Speichern und Verwenden von zusätzlichem Kontext für eine bestimmte Abfrage. Im Folgenden finden Sie ein Beispiel dafür, wie es verwendet werden [QuerySessionContext](https://docs.aws.amazon.com/glue/latest/webapi/API_QuerySessionContext.html)sollte:

1. Die Abfrage-Engine `GetInternalUnfilteredMetadata` ruft auf und übergibt eine QSC-Struktur, die eine eindeutige Abfrage-ID in der Anfrage enthält:

   ```
   {
       "QuerySessionContext": {
           "QueryId": "your-unique-identifier-here"
       }
   }
   ```

1. Der `GetInternalUnfilteredMetadata` Aufruf wird in der Antwort eine `QueryAuthorizationId` Zeichenfolge zurückgegeben haben. Beim nächsten (und jedem nachfolgenden) Abfrageaufruf, der eine QSC-Struktur in der Eingabe akzeptiert, übergibt die Abfrage-Engine dieselbe QSC-Struktur, die jetzt auch das `QueryAuthorizationId` zurückgegebene von enthält. Lake Formation Nehmen wir an, dieser nächste Aufruf ist`GetTemporaryGlueTableCredentials`; die Anfrage wird Folgendes enthalten:

   ```
   {
       "QuerySessionContext": {
           "QueryAuthorizationId": "lf-returned-query-authz-id-here",
           "QueryId": "your-unique-identifier-here"
       },
   }
   ```