Acceso a objetos - Amazon Cloud Directory

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso a objetos

Se puede acceder a los objetos de un directorio mediante la ruta o bien objectIdentifier.

RutaRuta: cada objeto de un árbol de Cloud Directory se puede identificar y encontrar por medio del nombre de ruta que describe cómo llegar al mismo. La ruta parte de la raíz del directorio (Nodo 000 en la ilustración anterior). La notación de la ruta comienza con el enlace etiquetado con una barra inclinada (/) y siguen los enlaces secundarios separados mediante el separador de ruta (también una barra inclinada) hasta llegar a la última parte de la ruta. Por ejemplo, el objeto 005 de la figura anterior se puede identificar utilizando la ruta /group/a/d. Varias rutas pueden identificar un objeto, ya que los objetos pueden tener varios nodos hijos de varios padres. La siguiente ruta también se puede utilizar para identificar el objeto 005 : /group/b/e

ObjectIDentifier— cada objeto del directorio tiene un identificador global único, que es elObjectIdentifier.ObjectIdentifierse devuelve como parte delCreateObjectLlamada a la API. También puede obtener el ObjectIdentifier utilizando la llamada a API GetObjectInformation. Por ejemplo, para recuperar el identificador de objeto del objeto 005, puede llamar a GetObjectInformation con la referencia de objeto como la ruta que conduce al objeto, que es 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()

Rellenar objetos

Se pueden añadir nuevas facetas a un objeto utilizando la llamada a API AddFacetToObject. El tipo del objeto se determina en función de las facetas que se adjuntan al objeto. El adjunto de objeto en un directorio funciona en función del tipo del objeto. Al adjuntar un objeto, recuerde estas reglas:

  • Un objeto de nodo hijo no puede tener secundarios.

  • Un objeto de nodo puede tener varios secundarios.

  • Un objeto del tipo de política no puede tener secundarios y puede tener cero o un principal.

Actualización de objetos

Puede actualizar un objeto de varias formas:

  1. Utilice la operación UpdateObjectAttributes para actualizar los atributos de faceta individuales de un objeto.

  2. Utilice la operación AddFacetToObject para añadir nuevas facetas a un objeto.

  3. Utilice la operación RemoveFacetFromObject para eliminar las facetas existentes de un objeto.

Eliminación de objetos

Un objeto adjunto debe cumplir determinadas condiciones antes de poder eliminarlo de un directorio:

  1. Debe desconectar el objeto del árbol. Puede desconectar un objeto solo cuando no tenga secundarios. Si el objeto tiene secundarios, debe desconectar todos los secundarios en primer lugar.

  2. Puede eliminar un objeto desconectado solo si se eliminan todos los atributos de ese objeto. Puede eliminar atributos en un objeto eliminando cada faceta adjunta a dicho objeto. Puede obtener una lista de las facetas adjuntas a un objeto llamando a GetObjectInformation.

  3. Un objeto también debe no tener ningún principal, ningún adjunto de política y ningún adjunto de índice.

Dado que un objeto se debe desconectar totalmente del árbol para que se elimine, debe utilizar el identificador de objetos para eliminarlo.

Consulta de objetos

En esta sección se explican diversos elementos relevantes para consultar objetos en un directorio.

Recorrido de directorios

Dado que Cloud Directory es un árbol, puede consultar objetos de arriba abajo usando la herramientaListObjectChildreno de abajo hacia arriba usando el métodoListObjectParentsOperación API.

Búsqueda de política

Dada una referencia de objeto, la operación de API LookupPolicy devuelve todas las políticas que se han adjuntado a lo largo de su ruta (o rutas) a la raíz de arriba abajo. Todas las rutas que no dirigen hacia la raíz se ignoran. Se devuelven todos los objetos de tipo de política.

Si el objeto es un nodo hijo, puede tener varias rutas a la raíz. Esta llamada devuelve solo una única ruta para cada llamada. Para obtener rutas adicionales, utilice el token de paginación.

Consulta de índice

Cloud Directory admite una potente funcionalidad de consulta de índice con el uso de los siguientes rangos:

  • FIRST: empieza desde el primer valor de atributo indexado. El valor de atributo de inicio es opcional.

  • LAST: devuelve valores de atributo hasta el final del índice, incluidos los valores que faltan. El valor de atributo final es opcional.

  • LAST_BEFORE_MISSING_VALUES: devuelve valores de atributo hasta el final del índice, excluidos los valores que faltan.

  • INCLUSIVE: incluye el valor de atributo que se está especificando.

  • EXCLUSIVE: excluye el valor de atributo que se está especificando.

Listado de ruta principal

Con la llamada a la API ListObjectParentPaths, puede recuperar todas las rutas principales disponibles para cualquier tipo de objeto (nodo, nodo hijo, nodo de políticas, nodo de índice). Esta operación de la API puede ser útil cuando necesita evaluar todos los principales de un objeto. La llamada devuelve todos los objetos desde la raíz del directorio hasta el objeto solicitado. También devuelve el número de rutas en función de MaxResults definido por el usuario, en caso de varias rutas a la principal. El orden de las rutas y los nodos devuelto es coherente entre varias llamadas de API a menos que los objetos se eliminen o se muevan. Las rutas que no dirigen a la raíz del directorio se ignoran desde el objeto de destino.

Para ver un ejemplo de cómo funciona, supongamos que un directorio tiene una jerarquía de objetos similar a la ilustración que se muestra a continuación.

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

Las formas numeradas representan los diferentes objetos. El número de flechas entre dicho objeto y la raíz del directorio (000) representa la ruta completa y se expresaría en la salida. En la siguiente tabla se muestran las solicitudes y respuestas de consultas realizadas a los objetos de nodo hijo específico de la jerarquía.

Consultas de ejemplo en objetos
Solicitud Respuesta
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

En este ejemplo, el objeto 005 tiene ambos nodos 002 y 003 como principales. Asimismo, puesto que MaxResults es 2, ambas rutas muestran objetos en una 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

En este ejemplo, el objeto 005 tiene ambos nodos 002 y 003 como principales. Asimismo, puesto que MaxResults es 1, se realizarán varias llamadas paginadas con tokens de página para obtener todas las rutas con una 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