

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.

# Lake Formationflux de travail pour les opérations d'API d'intégration d'applications
<a name="api-overview"></a>

Le flux de travail pour les opérations d'API d'intégration d'applications est le suivant :

1. Un utilisateur soumet une requête ou une demande de données à l'aide d'un moteur de requête tiers intégré. Le moteur de requête assume un rôle IAM qui représente l'utilisateur ou un groupe d'utilisateurs et récupère des informations d'identification fiables à utiliser lors de l'appel des opérations de l'API d'intégration de l'application.

1.  Le moteur de requête appelle`GetUnfilteredTableMetadata`, et s'il s'agit d'une table partitionnée, le moteur de requête appelle `GetUnfilteredPartitionsMetadata` pour récupérer les métadonnées et les informations de politique à partir du catalogue de données.

1.  Lake Formation autorise la demande. Si l'utilisateur ne dispose pas des autorisations appropriées sur la table, il *AccessDeniedException*est renvoyé. 

1. Dans le cadre de la demande, le moteur de requête envoie le filtrage qu'il prend en charge. *Deux indicateurs peuvent être envoyés dans un tableau : *COLUMN\$1PERMISSIONS et CELL\$1FILTER\$1PERMISSION*.* Si le moteur de requête ne prend en charge aucune de ces fonctionnalités et qu'une politique existe sur la table pour la fonctionnalité, un *PermissionTypeMismatchException*est émis et la requête échoue. Cela permet d'éviter les fuites de données.

1. La réponse renvoyée contient les éléments suivants :
   + Le schéma complet de la table afin que les moteurs de requête puissent l'utiliser pour analyser les données stockées.
   + Liste des colonnes autorisées auxquelles l'utilisateur a accès. Si la liste des colonnes autorisées est vide, cela indique que l'utilisateur dispose d'`DESCRIBE`autorisations, mais pas d'`SELECT`autorisations, et la requête échoue.
   + Un drapeau`IsRegisteredWithLakeFormation`, qui indique si Lake Formation peut fournir des informations d'identification à ces données de ressources. Si le résultat est faux, les informations d'identification des clients doivent être utilisées pour accéder à Amazon S3. 
   +  Une liste indiquant, le `CellFilters` cas échéant, à appliquer aux lignes de données. Cette liste contient des colonnes et une expression permettant d'évaluer chaque ligne. Ce champ ne doit être renseigné que si *CELL\$1FILTER\$1PERMISSION* est envoyé dans le cadre de la demande et s'il existe un filtre de données dans la table pour l'utilisateur appelant.

1. Une fois les métadonnées récupérées, le moteur de requête appelle `GetTemporaryGlueTableCredentials` ou `GetTemporaryGluePartitionCredentials` pour obtenir des AWS informations d'identification afin de récupérer les données depuis l'emplacement Amazon S3. 

1. Le moteur de requête lit les objets pertinents depuis Amazon S3, filtre les données en fonction des politiques reçues à l'étape 2 et renvoie les résultats à l'utilisateur. 

Les opérations de l'API d'intégration d'applications Lake Formation contiennent du contenu supplémentaire pour configurer l'intégration avec des moteurs de requêtes tiers. Vous pouvez consulter les détails des opérations dans la section [Opérations de l'API Credential vending](aws-lake-formation-api-credential-vending.md).

 `QuerySessionContext`Il s'agit d'une structure à laquelle les moteurs de requêtes peuvent également envoyer des informations Lake Formation pour ces opérations d'API d'intégration d'applications. Il permet Lake Formation de stocker et d'utiliser un contexte supplémentaire pour une requête donnée. Voici un exemple de la façon dont [QuerySessionContext](https://docs.aws.amazon.com/glue/latest/webapi/API_QuerySessionContext.html)il convient de l'utiliser :

1. Le moteur de requête effectue un `GetInternalUnfilteredMetadata` appel en transmettant une structure QSC contenant un identifiant de requête unique dans la demande :

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

1. L'`GetInternalUnfilteredMetadata`appel aura renvoyé une `QueryAuthorizationId` chaîne dans la réponse. Lors du prochain appel de requête (et de tout appel ultérieur) qui accepte une structure QSC en entrée, le moteur de requête transmet la même structure QSC qui contient désormais également le résultat `QueryAuthorizationId` renvoyé par. Lake Formation Supposons que le prochain appel soit `GetTemporaryGlueTableCredentials` ; la demande contiendra :

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