Accesso agli oggetti - Amazon Cloud Directory

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Accesso agli oggetti

Puoi accedere agli oggetti in una directory tramite un percorso o tramite objectIdentifier.

Percorso— ogni oggetto in una struttura Cloud Directory può essere identificato e individuato tramite il nome di percorso che descrive come raggiungerlo. Il percorso inizia dalla radice della directory (Nodo 000 nella figura precedente). La notazione del percorso inizia con il collegamento contrassegnato con una barra (/) e segue i collegamenti figli separati dal separatore di percorso (anch'esso una barra) fino a raggiungere l'ultima parte del percorso. Ad esempio, l'oggetto 005 nella figura precedente può essere identificato tramite il percorso /group/a/d. Più percorsi possono identificare un oggetto, in quanto gli oggetti che sono nodi foglia possono avere più padri. Il percorso seguente può essere utilizzato anche per identificare l'oggetto 005 : /group/b/e

ObjectiDentifier— ciascun oggetto della directory ha un identificatore globale univoco, ovvero l'ObjectIdentifier: .ObjectIdentifierviene restituito come parte dellaCreateObjectChiamata API. Puoi inoltre recuperare l'ObjectIdentifier tramite la chiamata API GetObjectInformation. Ad esempio, per recuperare l'identificatore di oggetto dell'oggetto 005, puoi chiamare GetObjectInformation con riferimento dell'oggetto come percorso che porta all'oggetto, ovvero group/b/e o group/a/d.

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

Popolamento degli oggetti

Nuovi facet possono essere aggiunti a un oggetto tramite la chiamata API AddFacetToObject. Il tipo di oggetto viene determinato in base ai facet collegati all'oggetto. L'allegato dell'oggetto in una directory funziona in base al tipo dell'oggetto. Quando colleghi un oggetto, tieni presente queste regole:

  • Un oggetto nodo foglia non può avere figli.

  • Un oggetto nodo può avere più figli.

  • Un oggetto di tipo policy non può avere figli e può avere uno o zero padri.

Aggiornamento di oggetti

Puoi aggiornare un oggetto in più modi:

  1. Utilizza l'operazione UpdateObjectAttributes per aggiornare i singoli attributi di facet su un oggetto.

  2. Utilizza l'operazione AddFacetToObject per aggiungere nuovi facet a un oggetto.

  3. Utilizza l'operazione RemoveFacetFromObject per eliminare facet esistenti da un oggetto.

Eliminazione di oggetti

Un oggetto collegato deve soddisfare determinate condizioni prima di poterlo eliminare da una directory:

  1. È necessario distaccare l'oggetto dalla struttura. Puoi distaccare un oggetto solo quando non presenta figli. Se l'oggetto presenta figli, è necessario prima distaccare tutti i figli.

  2. Puoi eliminare un oggetto distaccato solo se tutti gli attributi di quell'oggetto sono eliminati. Puoi eliminare gli attributi su un oggetto eliminando ogni facet collegato a tale oggetto. Puoi recuperare un elenco di facet collegati a un oggetto chiamando GetObjectInformation.

  3. Un oggetto non deve inoltre presentare alcun padre, collegamenti di policy o di indice.

Poiché un oggetto deve essere distaccato completamente dalla struttura per essere eliminato, è necessario utilizzare l'identificatore dell'oggetto per poterlo eliminare.

Esecuzione di query sugli oggetti

Questa sezione illustra vari elementi rilevanti per l'esecuzione di query sugli oggetti all'interno di una directory.

Attraversamento di directory

Poiché Cloud Directory è una struttura, puoi eseguire query sugli oggetti dall'alto verso il basso tramite l'ListObjectChildrenoperazione API o dal basso verso l'alto utilizzando il metodoListObjectParentsOperazione API.

Ricerca di policy

Considerando un riferimento dell'oggetto, l'operazione API LookupPolicy restituisce tutte le policy collegate lungo il suo percorso (o i percorsi) verso la radice procedendo dall'alto verso il basso. Tutti i percorsi non relativi alla radice verranno ignorati. Vengono restituiti tutti gli oggetti di tipo policy.

Se l'oggetto è un nodo foglia, può presentare più percorsi verso la radice. Questa chiamata restituisce un solo percorso per ciascuna chiamata. Per recuperare percorsi aggiuntivi, utilizza il token di paginazione.

Esecuzione di query sugli indici

Cloud Directory supporta una ricca funzionalità di esecuzione di query sugli indici con l'uso dei seguenti intervalli:

  • FIRST: parte dal primo valore di attributo indicizzato. Il valore di attributo di inizio è facoltativo.

  • LAST: restituisce i valori degli attributi fino alla fine dell'indice, inclusi i valori mancanti. Il valore di attributo di fine è facoltativo.

  • LAST_BEFORE_MISSING_VALUES: restituisce i valori degli attributi fino alla fine dell'indice, esclusi i valori mancanti.

  • INCLUSIVE: include il valore dell'attributo specificato.

  • EXCLUSIVE: esclude il valore dell'attributo specificato.

Elenco dei percorsi padre

Tramite la chiamata API ListObjectParentPaths, puoi recuperare tutti i percorsi padre disponibili per qualsiasi tipo di oggetto (nodo, nodo foglia, nodo di policy, nodo di indice). Questa operazione API può essere utile quando è necessario valutare tutti i padri di un oggetto. La chiamata restituisce tutti gli oggetti dalla directory radice fino all'oggetto richiesto. Restituisce inoltre il numero di percorsi basati MaxResults definito dall'utente, in caso di più percorsi verso il padre. L'ordine dei percorsi e dei nodi restituiti è coerente tra più chiamate API, a meno che gli oggetti vengano eliminati o spostati. I percorsi non relativi alla directory radice verranno ignorati dall'oggetto di destinazione.

Per un esempio su tale funzionamento, presupponiamo che una directory presenti una gerarchia di oggetti simile all'illustrazione riportata di seguito.

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

Le forme numerati rappresentano i diversi oggetti. Il numero di frecce tra l'oggetto e la directory radice (000) rappresentano il percorso completo che verrà espresso nell'output. La tabella seguente mostra le richieste e le risposte dalle query effettuate a oggetti nodo foglia specifici della gerarchia.

Esempi di query su oggetti
Richiesta Risposta
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

In questo esempio, l'oggetto 005 presenta sia nodi 002 che 003 come padri. Inoltre, poiché MaxResults è pari a 2, entrambi i percorsi visualizzano gli oggetti in un elenco.

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

In questo esempio, l'oggetto 005 presenta sia nodi 002 che 003 come padri. Inoltre, poiché MaxResults è 1, più chiamate restituite nella pagina con token di pagina verranno effettuate per ottenere tutti i percorsi con un elenco di oggetti.

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