xds/core/v3/resource_locator.proto (proto)
警告
此 API 功能目前仍在開發中。標記為開發中的 API 功能不被視為穩定,不受威脅模型涵蓋,不受安全團隊支援,並且可能會發生重大變更。在不了解以上各點的情況下,請勿使用此功能。
.xds.core.v3.ResourceLocator
[.xds.core.v3.ResourceLocator proto]
xDS 資源定位器會識別 xDS 資源名稱,並指示資料平面負載平衡器如何定位資源。
資源定位器具有規範的 xdstp:// URI 表示形式
xdstp://{authority}/{type_url}/{id}?{context_params}{#directive,*}
其中 context_params 採用 URI 查詢參數的形式。
資源定位器具有類似的規範 http:// URI 表示形式
http://{authority}/{type_url}/{id}?{context_params}{#directive,*}
資源定位器也具有簡化的 file:// URI 表示形式
file:///{id}{#directive,*}
{
"scheme": ...,
"id": ...,
"authority": ...,
"resource_type": ...,
"exact_context": {...},
"directives": []
}
- scheme
(.xds.core.v3.ResourceLocator.Scheme) URI 協定。
- id
(字串) 資源的不透明識別碼。任何「/」在 URI 編碼期間都不會被跳脫,並將構成 URI 路徑的一部分。這可能以「*」結尾,以表示 glob 集合參考。
- authority
(字串) 資源的邏輯授權單位(不一定是傳輸網路位址)。授權單位在 xDS API 中是不透明的,資料平面負載平衡器會將它們對應到具體的網路傳輸,例如 xDS 管理伺服器,例如透過 envoy.config.core.v3.ConfigSource。
- resource_type
(字串,必要) 完整限定的資源類型(如同不含 types.googleapis.com/ 字首的類型 URL)。
- exact_context
(.xds.core.v3.ContextParams) 可用於選取資源變體的額外參數。比對必須精確,也就是說,所有上下文參數都必須完全比對,而且在比對的資源上不得設定額外的上下文參數。
- directives
(重複 .xds.core.v3.ResourceLocator.Directive) 出現在 xDS 資源定位器 #片段中的指令清單。
當編碼為 URI 形式時,指令會以逗號分隔並進行百分比編碼。
.xds.core.v3.ResourceLocator.Directive
[.xds.core.v3.ResourceLocator.Directive proto]
指令會向資料平面負載平衡器提供資訊,說明如何解釋 xDS 資源名稱,並可能進一步解析。例如,它們可以在主要解析失敗時提供替代資源定位器。指令不是資源名稱的一部分,也不會出現在 xDS 傳輸探索請求中。
當編碼為 URI 時,指令採用以下形式
<指令名稱>=<指令值的字串表示形式>
例如,我們可以有 alt=xdstp://foo/bar 或 entry=some%20thing。每個指令值類型可能都有自己的字串編碼,對於 ResourceLocator,則有遞迴 URI 編碼。
百分比編碼適用於指令值的 URI 編碼。多個指令以逗號分隔,因此在指令值中需要百分比編碼的保留字元為 [「,」、「#」、「[」、「]」、「%」]。這些是 RFC3986 片段保留字元,並加上 xDS 協定特定的「,」。請參閱 https://tools.ietf.org/html/rfc3986#page-49,以瞭解有關 URI ABNF 和保留字元的更多詳細資訊。
{
"alt": {...},
"entry": ...
}
- alt
(.xds.core.v3.ResourceLocator) 如果資源不可用,則用於後援的替代資源定位器。例如,採用資源定位器
xdstp://foo/some-type/some-route-table#alt=xdstp://bar/some-type/another-route-table
如果資料平面負載平衡器無法連線到 foo 以擷取資源,它將會後援至 bar。替代資源不需要具有等效的內容,但它們應該是功能替代品。
列舉 .xds.core.v3.ResourceLocator.Scheme
[.xds.core.v3.ResourceLocator.Scheme proto]
- XDSTP
(預設)
- HTTP
- FILE