Acessar objetos - Amazon Cloud Directory

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á.

Acessar objetos

Os objetos em um diretório podem ser acessados por caminho ou por objectIdentifier.

Caminho— cada objeto em uma árvore do Cloud Directory pode ser identificado e localizado pelo nome do caminho que descreve como acessá-lo. O caminho começa no nó raiz do diretório (nó 000 na figura anterior). A notação do caminho começa com o link rotulado com uma barra (/) e segue os links filho separados pelo separador de caminho (também uma barra) até atingir a última parte do caminho. Por exemplo, o objeto 005 na figura anterior pode ser identificado usando o caminho /group/a/d. Vários caminhos podem identificar um objeto, uma vez que os objetos que são nós folha podem ter vários pais. O caminho a seguir também pode ser usado para identificar o objeto 005 : /group/b/e

ObjectIdentifier— cada objeto no diretório tem um identificador exclusivo global, que é oObjectIdentifier.ObjectIdentifierO é retornado como parte doCreateObjectChamada de API. Você também pode buscar o ObjectIdentifier usando a chamada da API GetObjectInformation. Por exemplo, para buscar o identificador do objeto 005, você pode chamar GetObjectInformation com a referência do objeto como o caminho que resulta no objeto, que é group/b/e ou group/a/d.

GetObjectInformationRequest request = new GetObjectInformationRequest() .withDirectoryArn(directoryArn) .withObjectReference("/group/b/e") .withConsistencyLevel(level) GetObjectInformationResult result = cdClient.getObjectInformation(request) String objectIdentifier = result.getObjectIdentifier()

Preencher objetos

As facetas novas podem ser adicionadas a um objeto usando a chamada da API AddFacetToObject. O tipo do objeto é determinado com base nas facetas anexadas ao objeto. O anexo do objeto em um diretório funciona com base no tipo do objeto. Para anexar um objeto, lembre-se destas regras:

  • Um objeto de nó folha não pode ter filhos.

  • Um objeto de nó pode ter vários filhos.

  • Um objeto do tipo política não pode ter filhos e pode ter zero ou um pai.

Atualização de objetos

Você pode atualizar um objeto de várias maneiras:

  1. Usar a operação UpdateObjectAttributes para atualizar atributos individuais de facetas em um objeto.

  2. Usar a operação AddFacetToObject para adicionar novas facetas a um objeto.

  3. Usar a operação RemoveFacetFromObject para excluir facetas existentes de um objeto.

Excluir objetos

Um objeto anexado deve atender a certas condições para que você possa excluí-lo de um diretório:

  1. Você deve desanexar o objeto da árvore. Você pode desanexar um objeto somente quando ele não tiver nenhum filho. Se o objeto tiver filhos, você deve desanexar todos os filhos primeiro.

  2. Você pode excluir um objeto desanexado somente se todos os atributos desse objeto estiverem excluídos. Você pode excluir atributos em um objeto excluindo cada faceta anexada a esse objeto. Você pode buscar uma lista de facetas anexadas a um objeto chamando GetObjectInformation.

  3. Um objeto também não deve ter nenhum pai, nenhum anexo de política e nenhum anexo de índice.

Como um objeto deve estar totalmente desanexado da árvore a ser excluída, você deve usar o identificador do objeto para excluí-lo.

Consultar objetos

Esta seção aborda os vários elementos relevantes para consultar objetos em um diretório.

Travessia do diretório

Como o Cloud Directory é uma árvore, você pode consultar objetos da parte superior para baixo usando oListObjectChildrenoperação da API ou de baixo para cima usando oListObjectParentsOperação da API.

Pesquisa de política

Dada uma referência de objeto, a operação da API LookupPolicy retorna todas as políticas que estão anexadas ao longo de seu caminho (ou caminhos) à raiz de uma maneira de cima para baixo. Todos os caminhos que não estiverem levando a raiz são ignorados. Todos os objetos de tipo de política são retornados.

Se o objeto for um nó folha, ele poderá ter vários caminhos até a raiz. Essa chamada retorna somente um caminho para cada chamada. Para buscar caminhos adicionais, use o token de paginação.

Consulta de índice

O Cloud Directory oferece suporte à funcionalidade sofisticada de consulta de índice com o uso dos seguintes intervalos:

  • FIRST - começa no primeiro valor do atributo indexado. O valor inicial do atributo é opcional.

  • LAST - retorna os valores do atributo até o final do índice, incluindo os valores ausentes. O valor final do atributo é opcional.

  • LAST_BEFORE_MISSING_VALUES - retorna os valores do atributo até o final do índice, excluindo os valores ausentes.

  • INCLUSIVE - inclui o valor do atributo que está sendo especificado.

  • EXCLUSIVE - exclui o valor do atributo que está sendo especificado.

Listagem de caminhos pai

Usando a chamada da API ListObjectParentPaths, você pode recuperar todos caminhos pai disponíveis para qualquer tipo de objeto (nó, nó folha, nó de política, nó de índice). Essa operação da API pode ser útil quando você precisar avaliar todos os pais de um objeto. A chamada retorna todos os objetos da raiz do diretório até o objeto solicitado. Também retorna o número de caminhos com base no MaxResults definido pelo usuário, no caso de vários caminhos até o pai. A ordem dos caminhos e dos nós retornados é consistente entre várias chamadas da API a menos que os objetos sejam excluídos ou movidos. Os caminhos que não levam para a raiz do diretório são ignorados do objeto de destino.

Para um exemplo de como isso funciona, digamos que um diretório tem uma hierarquia de objeto semelhante à ilustração mostrada a seguir.

Object hierarchy diagram showing nodes, links, and policy objects in a tree structure.

As formas numeradas representam os diferentes objetos. O número de setas entre o objeto e a raiz do diretório (000) representa o caminho completo e seria expresso na saída. As tabela a seguir mostra as solicitações e as respostas às consultas feitas a objetos de nós folha específicos na hierarquia.

Consultas de exemplo nos objetos
Solicitação Resposta
004, PageToken: null, MaxResults: 1 [{/group/a/c], [000, 001, 002, 004]}], PageToken: null
005, PageToken: null, MaxResults: 2 [{/group/a/d, [000, 001, 002, 005]}, { /group/b/e, [000, 001, 003, 005]}], PageToken: null
nota

Neste exemplo, o objeto 005 tem dois nós 002 e 003 como pais. Além disso, como MaxResults é 2, os dois caminhos exibem objetos em uma lista.

005, PageToken: null, MaxResults: 1 [{/group/a/d, [000, 001, 002, 005]}], PageToken: <encrypted_next_token>
005, PageToken: <encrypted_next_token>, MaxResults: 1 [{/group/b/e, [000, 001, 003, 005]}], PageToken: null
nota

Neste exemplo, o objeto 005 tem dois nós 002 e 003 como pais. Além disso, como MaxResults é 1, várias chamadas paginadas com tokens de página serão feitas para obter todos os caminhos com uma lista de objetos.

006, PageToken: null, MaxResults: 1 [{/group/b/f, [000, 001, 003, 006]}], PageToken: null
007, PageToken: null, MaxResults: 1 [{/group/a/index, [000, 001, 002, 007]}], PageToken: null