Azure Cosmos DB 數據總管無法連線
有時候,Azure Cosmos DB 數據總管無法連線到您的帳戶,或對資源或專案執行作業。 本文會檢閱此問題的潛在原因和解決方案。
重要
Azure Cosmos DB 資料總管不適用於適用於 PostgreSQL 的 API 或虛擬核心的 API。
必要條件
適用於 NoSQL、MongoDB RU、Apache Cassandra、Apache Gremlin 或數據表帳戶的現有 Azure Cosmos DB
徵兆
即使在啟用 [允許從 Azure 入口網站 存取] 選項之後,您仍無法連線到數據總管。
原因
即使您設定正確的角色型訪問控制和入口網站許可權之後,也必須根據選取的 API 來設定額外的網路存取需求。
某些服務,例如適用於 NoSQL 的 API、適用於 Apache Gremlin 的 API 和適用於資料表的 API,請使用用戶端 JavaScript SDK 來執行作業,並要求一組解決方案。
其他服務,例如適用於 MongoDB 的 API RU 和適用於 Apache Cassandra 的 API,請使用通訊協定特定的中介件,並要求替代解決方案。
適用於 NoSQL、Apache Gremlin 或 Table 之 API 的解決方案
資料庫、容器、圖形和數據表(控制平面)作業是透過使用 Azure Cosmos DB 資源提供者呼叫 Azure Resource Manager 控制平面來執行。 您的網路設定不會影響這些作業。
專案(數據平面)作業會使用瀏覽器內容內的 JavaScript SDK 來執行。 您目前使用的裝置必須具有帳戶的直接網路存取權。
針對使用 公用存取(所有網路)設定的帳戶,數據平面作業不應該有任何與網路相關的連線問題。
針對使用 公用存取設定的帳戶(選取的網路),您必須建立防火牆規則,以允許從您目前的裝置存取帳戶。 Azure 入口網站 服務頁面中的網路功能具有 [新增我目前的IP] 超連結,可自動新增您的IP位址。
如果帳戶沒有防火牆規則,數據總管會擲回可在數據總管通知中觀察到的錯誤。 此錯誤訊息包含類似下列範例的文字:
API 錯誤 NoSQL Request originated from IP XXX.XXX.XXX.XXX through public internet. This is blocked by your Cosmos DB account firewall settings.
Apache Gremlin Failure in submitting query: g.V(): Request originated from IP XXX.XXX.XXX.XXX through public internet. This is blocked by your Cosmos DB account firewall settings.
Table Error while refreshing databases: Request originated from IP XXX.XXX.XXX.XXX through public internet. This is blocked by your Cosmos DB account firewall settings.
針對已 停用公用存取的帳戶,您的裝置必須連線到具有連線到帳戶到帳戶的虛擬網路,數據平面作業才能運作。
適用於 MongoDB RU 或 Apache Cassandra 之 API 的解決方案
分別檢閱控制平面和數據平面解決方案。
資料庫、keyspace 和集合(控制平面)作業是透過使用 Azure Cosmos DB 資源提供者呼叫 Azure Resource Manager 控制平面來執行。 您的網路設定不會影響這些作業。
專案(數據平面)作業是使用 API 中間件中的 Proxy 服務來執行。 此服務可協助在專案作業和查詢中使用服務原生 (MongoDB、Cassandra) 通訊協定。 Proxy 服務需要帳戶的直接網路存取權。
針對使用 公用存取(所有網路)設定的帳戶,數據平面作業不應該有任何與網路相關的連線問題。
針對使用公用存取設定的帳戶(選取的網路),您必須在 Azure 入口網站 中服務頁面的網路功能中選取 [允許從 Azure 入口網站存取]。 此選項會新增包含中間件服務的IP位址範圍。 您 不需要 新增目前裝置的IP位址。
如果帳戶沒有防火牆規則,數據總管會擲回可在瀏覽器開發人員工具中觀察到的錯誤。 此錯誤訊息包含中間件服務所產生的泛型
Error querying documents
或Failed to establish connection with cassandra node
訊息。 擴充的錯誤訊息會包含在計算網關記錄中,類似下列範例:Request originated from IP XXX.XXX.XXX.XXX through public internet. This is blocked by your Cosmos DB account firewall settings.