存取物件 - Amazon Cloud Directory

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

存取物件

您可透過路徑或 objectIdentifier 存取目錄中的物件。

路徑— 透過說明到達方法的路徑名稱,可在 Cloud Directory 樹狀目錄中識別及找到每個物件。路徑從根目錄開始 (上圖中的節點 000)。路徑的表示法為以斜線 (/) 標記的連結開始,後面接著以路徑分隔符號 (也是斜線) 分隔的子連結,一直到路徑的最後一個部分。例如,使用路徑 005 可以找到上圖中的物件 /group/a/d。多個路徑可找到一個物件,因為分葉節點物件可有多個父項。使用以下路徑也可以找到物件 005:/group/b/e

物件識別器— 目錄中的每個物件都有唯一的全域識別符,即ObjectIdentifierObjectIdentifier傳回為CreateObjectAPI 呼叫。您也可以ObjectIdentifier透過使用GetObjectInformationAPI 呼叫。例如,若要擷取物件 005 的物件識別符,您可以指向物件的物件參考為路徑呼叫 GetObjectInformation 來導致物件,即 group/b/e 或 group/a/d。

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

填入物件

您可以使用 AddFacetToObject API 呼叫將新的面向新增到物件。物件類型是由連接到物件的面向所決定。目錄中的物件附件是根據物件類型運作。連接物件時,請記住這些規則:

  • 分葉節點物件不能有子項。

  • 節點物件可有多個子項。

  • 政策類型的物件不能有子項,但可有零或一個父項。

更新物件

您有多種方式可以更新物件:

  1. 使用 UpdateObjectAttributes 操作更新物件上的個別面向屬性。

  2. 使用 AddFacetToObject 操作將新的面向新增到物件。

  3. 使用 RemoveFacetFromObject 操作從物件中刪除現有的面向。

刪除物件

連接的物件必須符合特定條件,您才可以從目錄中刪除它:

  1. 您必須將物件從樹狀目錄分離。只有當物件沒有任何子項時,您才可以分離物件。如果物件有子項,您必須先分離所有子項。

  2. 您只有在刪除該物件中的所有屬性後,才可以刪除分離的物件。您可以透過刪除連接到該物件的每個面向來刪除物件上的屬性。您可以呼叫 GetObjectInformation,以擷取連接到物件的面向清單。

  3. 物件也必須沒有任何父項、沒有任何政策附件、沒有任何索引附件。

因為物件必須完全與樹狀目錄分離才能刪除,所以您必須使用物件識別符將其刪除。

查詢物件

本節討論與在目錄中查詢物件相關的各種元素。

目錄周遊

因為 Cloud Directory 是樹狀目錄,所以您可以使用ListObjectChildrenAPI 操作,或從下而上使用ListObjectParentsAPI 操作。

政策查閱

考慮到物件參考,LookupPolicy API 操作會以由上而下的方式傳回所有連接的政策及其一或多個根路徑。任何無法指向根目錄的路徑都予以忽略。會傳回所有政策類型物件。

如果此物件是分葉節點,它可以有到達根目錄的多個路徑。這個呼叫每個呼叫只傳回一個路徑。若要擷取額外的路徑,請使用分頁字符。

索引查詢

Cloud Directory 使用以下範圍支援豐富的索引查詢功能:

  • FIRST - 從第一個已建立索引的屬性值開始。開始屬性值為選用。

  • LAST - 傳回直到索引結尾的屬性值,包括缺漏值。結束屬性值為選用。

  • LAST_BEFORE_MISSING_VALUES - 傳回直到索引結尾的屬性值,排除缺漏值。

  • INCLUSIVE - 包括要指定的屬性值。

  • EXCLUSIVE - 排除要指定的屬性值。

父項路徑清單

使用 ListObjectParentPaths API 呼叫,您可以擷取任何物件類型的所有可用父項路徑 (節點、分葉節點、政策節點、索引節點)。當您需要評估物件的所有父項時,這個 API 操作很有用。這個呼叫會傳回根目錄中所請求物件前的所有物件。它也會根據使用者定義的 MaxResults 傳回路徑數,如果父項有多個路徑。多個 API 呼叫中傳回的路徑和節點順序是一致的,除非物件已遭刪除或移動。目標物件中不指向根目錄的路徑都予以忽略。

如需此運作方式的範例,假設目錄的物件階層類似下圖。

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

有編號的圖形代表不同的物件。該物件和根目錄 (000) 之間的箭頭數代表完整的路徑,可能會在輸出中表示。下表顯示對階層中特定分葉節點物件所執行之查詢的請求和回應。

物件的範例查詢
要求 回應
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
注意

在本例中,物件 005 有兩個父節點 002003。而且,因為 MaxResults 是 2,所以兩個路徑都在清單中顯示物件。

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
注意

在本例中,物件 005 有兩個父節點 002003。而且,因為 MaxResults 是 1,所以會建立多個有頁面字符的編頁呼叫,以取得有物件清單的所有路徑。

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