

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Fluxo de trabalho do Lake Formation para operações de API de integração de aplicativos
<a name="api-overview"></a>

A seguir está o fluxo de trabalho das operações da API de integração de aplicativos:

1. Um usuário envia uma consulta ou solicitação de dados usando um mecanismo de consulta integrado de terceiros. O mecanismo de consulta assume um perfil do IAM que representa o usuário ou um grupo de usuários e recupera credenciais confiáveis para serem usadas ao chamar as operações da API de integração de aplicativos.

1.  O mecanismo de consulta chama `GetUnfilteredTableMetadata` e, se for uma tabela particionada, o mecanismo de consulta chama `GetUnfilteredPartitionsMetadata` para recuperar metadados e informações de política do catálogo de dados.

1.  O Lake Formation realiza a autorização para a solicitação. Se o usuário não tiver as permissões apropriadas na mesa, ele será *AccessDeniedException*descartado. 

1. Como parte da solicitação, o mecanismo de consulta envia a filtragem compatível. Há dois sinalizadores que podem ser enviados em uma matriz: *COLUMN\_PERMISSIONS* e *CELL\_FILTER\_PERMISSION*. Se o mecanismo de consulta não oferecer suporte a nenhum desses recursos e existir uma política na tabela para o recurso, a será lançado e a consulta falhará. *PermissionTypeMismatchException* Isso acontece para evitar o vazamento de dados.

1. A resposta obtida contém o seguinte:
   + O esquema inteiro da tabela para que os mecanismos de consulta possam usá-lo para analisar os dados do armazenamento.
   + Uma lista de colunas autorizadas que o usuário tem acesso. Se a lista de colunas autorizadas estiver vazia, isso indica que o usuário tem permissões `DESCRIBE`, mas não tem permissões `SELECT`, e a consulta falha.
   + Um alerta, `IsRegisteredWithLakeFormation`, que indica se o Lake Formation pode fornecer credenciais para esses dados de recursos. Se isso retornar falso, as credenciais dos clientes devem ser usadas para acessar o Amazon S3. 
   +  Uma lista de `CellFilters`, se houver, que deve ser aplicada às linhas de dados. Essa lista contém colunas e uma expressão para avaliar cada linha. Isso só deve ser preenchido se *CELL\_FILTER\_PERMISSION* for enviado como parte da solicitação e houver um filtro de dados na tabela do usuário chamador.

1. Depois que os metadados são recuperados, o mecanismo de consulta chama `GetTemporaryGlueTableCredentials` ou obtém AWS credenciais `GetTemporaryGluePartitionCredentials` para recuperar dados da localização do Amazon S3. 

1. O mecanismo de consulta lê objetos relevantes do Amazon S3, filtra os dados com base nas políticas recebidas na etapa 2 e retorna os resultados ao usuário. 

As operações da API de integração de aplicativos para o Lake Formation contêm conteúdo adicional para configurar a integração com mecanismos de consulta de terceiros. Você pode ver os informações da operação na seção [Operações da API de fornecimento de credenciais.](aws-lake-formation-api-credential-vending.md)

 Essa `QuerySessionContext` é uma estrutura que os mecanismos de consulta também podem enviar Lake Formation para essas operações de API de integração de aplicativos. Ele permite Lake Formation armazenar e utilizar contexto adicional para uma determinada consulta. Veja a seguir um exemplo de como [QuerySessionContext](https://docs.aws.amazon.com/glue/latest/webapi/API_QuerySessionContext.html)deve ser usado:

1. O mecanismo de consulta faz uma `GetInternalUnfilteredMetadata` chamada, passando uma estrutura QSC contendo um ID de consulta exclusivo na solicitação:

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

1. A `GetInternalUnfilteredMetadata` chamada retornará uma `QueryAuthorizationId` string na resposta. Na próxima chamada de consulta (e em qualquer chamada subsequente) que aceita uma estrutura QSC na entrada, o mecanismo de consulta passa a mesma estrutura QSC que agora também contém o `QueryAuthorizationId` retornado por. Lake Formation Suponha que a próxima chamada seja`GetTemporaryGlueTableCredentials`; a solicitação conterá:

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