事件
3月31日 下午11時 - 4月2日 下午11時
規模最大的 Fabric、Power BI 與 SQL 學習盛會。 3 月 31 日至 4 月 2 日。 使用代碼 FABINSIDER 可節省 $400。
立即報名適用於:Azure Data Factory
Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
本文探討 Azure Data Factory 和 Synapse Analytics 管線中的安全性和存取控制常見的疑難排解方法。
當來源或接收資料存放區發生連線問題時,可能會傳回各種錯誤訊息。
此問題通常由下列其中一個因素造成:
自我裝載整合執行階段 (IR) 節點中的 Proxy 設定 (如果您使用自我裝載整合執行階段 (IR) 的話)。
自我裝載整合執行階段 (IR) 節點中的防火牆設定 (如果您使用自我裝載整合執行階段 (IR) 的話)。
雲端資料存放區中的防火牆設定。
若要確保問題出在連線上,請檢查是否有以下情況:
如果您使用自我裝載 IR,請檢查 Proxy、防火牆和網路設定,因為如果您使用 Azure IR,連線到相同資料存放區可能會成功。 若要針對此案例進行疑難排解,請參閱:
如果您使用 Azure IR,請嘗試停用資料存放區的防火牆設定。 這種方法可以解決下列兩種情況所發生的問題:
如果上述方法都無效,請連絡 Microsoft 以取得協助。
您已從 ADF 建立受控私人端點,並取得已核准的私人端點。 但是,在稍後刪除或拒絕私人端點之後,ADF 中的受控私人端點仍會持續存在,並顯示「已核准」。
目前,ADF 會在核准後停止提取私人端點狀態。 因此,ADF 中顯示的狀態已過時。
一旦從來源/接收資料集拒絕/刪除現有的私人端點,您即應該刪除 ADF 中的受控私人端點。
在停用服務的公用網路存取之後,自我裝載整合執行階段會擲回下列錯誤:The Authentication key is invalid or empty.
或 Cannot connect to the data factory. Please check whether the factory has enabled public network access or the machine is hosted in a approved private endpoint Virtual Network.
最可能造成此問題的因素是網域名稱系統 (DNS) 解析出錯,因為停用公用連線並建立私人端點會禁止重新連線。
若要確認服務的完整網域名稱 (FQDN) 是否解析為公用 IP 位址,請執行下列動作:
確認您已在與服務的私人端點相同的虛擬網路中建立 Azure 虛擬機器 (VM)。
執行從 Azure VM 到服務 FQDN 的 PsPing 和 Ping:
psping.exe <dataFactoryName>.<region>.datafactory.azure.net:443
ping <dataFactoryName>.<region>.datafactory.azure.net
備註
您必須為 PsPing 命令指定連接埠。 這裡會顯示連接埠 443,但不一定要使用。
檢查這兩個命令是否都解析為以指定區域為基礎的 Azure Data Factory 公用 IP。 IP 的格式應該如下:xxx.xxx.xxx.0
若要解決這個問題,請執行下列動作:
作為選項,建議您在服務的 [私人連結 DNS 區域] 底下手動新增 [虛擬網路連結]。 如需詳細資訊,請參閱 Azure Private Link 一文。 此指示會引導您設定私人 DNS 區域或自訂 DNS 伺服器,以將服務 FQDN 解析為私人 IP 位址。
不過,如果您不想設定私人 DNS 區域或自訂 DNS 伺服器,請嘗試下列臨時解決方案:
變更 Windows 中的主機檔案,並將私人 IP (服務的私人端點) 對應至服務 FQDN。
在 Azure VM 中,移至 C:\Windows\System32\drivers\etc
,然後在記事本中開啟主機檔案。 在檔案結尾處新增會將私人 IP 對應至 FQDN 的程式行,並儲存變更。
重新執行與上述驗證步驟相同的命令以檢查回應,回應中應該會包含私人 IP。
重新註冊自我裝載整合執行階段,應該就能解決問題了。
您無法在自我裝載的 VM 上註冊 IR 驗證金鑰,因為私人連結已啟用。 您收到下列錯誤訊息:
「無法從 ADF 服務取得金鑰為 *************** 的服務權杖,時間成本為:0.1250079 秒,錯誤碼為:InvalidGatewayKey,activityId 為:XXXXXXX,詳細的錯誤訊息為用戶端 IP 位址不是有效的私人 IP,因為 Data Factory 無法存取公用網路,因而無法連線到雲端以使連線成功。」
造成此問題的原因可能是您嘗試安裝自我裝載 IR 的 VM。 若要連線到雲端,請確定您已啟用公用網路存取。
解決方案 1
若要解決這個問題,請執行下列動作:
移至 [處理站 - 更新] 頁面。
在右上方,選取 [試試看] 按鈕。
在 [參數] 下,完成必要資訊。
在 [本文] 下,貼上下列屬性:
{ "tags": { "publicNetworkAccess":"Enabled" } }
選取 [執行] 來執行函式。
在 [參數] 下,完成必要資訊。
在 [本文] 下,貼上下列屬性:
{ "tags": { "publicNetworkAccess":"Enabled" } }
選取 [執行] 來執行函式。
確認有顯示回應碼:200。 您貼上的屬性也應該會顯示在 JSON 定義中。
在整合執行階段中再次新增 IR 驗證金鑰。
解決方案 2
若要解決此問題,請移至 Azure Private Link。
嘗試在使用者介面上啟用公用網路存取,如下列螢幕擷取畫面所示:
Azure Resource Manager 和服務使用相同的私人區域,而在客戶的私人 DNS 上產生潛在衝突,並發生找不到 Azure Resource Manager 記錄的情況。
使用 Azure Blob 儲存體帳戶公用存取來複製資料時,管線執行會隨機失敗,並出現下列錯誤。
例如:Azure Blob 儲存體接收使用 Azure IR (公用,而不是受控虛擬網路),Azure SQL Database 來源則使用受控虛擬網路 IR。 或者,來源/接收只使用具有儲存體公用存取的受控虛擬網路 IR。
<LogProperties><Text>Invoke callback url with req: "ErrorCode=AzureBlobFailedToCreateContainer,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Unable to create Azure Blob container. Endpoint: XXXXXXX/, Container Name: test.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=Microsoft.WindowsAzure.Storage.StorageException,Message=Unable to connect to the remote server,Source=Microsoft.WindowsAzure.Storage,''Type=System.Net.WebException,Message=Unable to connect to the remote server,Source=System,''Type=System.Net.Sockets.SocketException,Message=A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond public ip:443,Source=System,'","Details":null}}</Text></LogProperties>.
服務可能仍使用受控虛擬網路 IR,但您可能會發生這樣的錯誤,因為根據測試結果,受控虛擬網路 中 Azure Blob 儲存體的公用端點並不可靠,而且根據受控虛擬網路和受控私人端點,不支援透過公用端點從服務的受控虛擬網路連線到 Azure Blob 儲存體和 Azure Data Lake Gen2。
{\"error\":{\"code\":\"InternalError\",\"message\":\"Internal error has occurred.\"}}
如果您要執行任何與 CMK 相關的作業,請先完成所有與服務相關的作業,再完成外部作業 (例如受控識別或 Key Vault 作業)。 例如,如果您想要刪除所有資源,就必須先刪除服務執行個體,再刪除金鑰保存庫。 如果您先刪除金鑰保存庫,就會發生此錯誤,因為服務無法再讀取到所需的物件,而且無法驗證是否可執行刪除作業。
有三種辦法可以解決此問題。 這些範本如下:
您已撤銷服務對 CMK 金鑰儲存所在金鑰保存庫的存取權。 您可以重新指派下列權限的存取權:取得、將金鑰解除包裝和包裝金鑰。 必須要有這些權限,才能啟用客戶自控金鑰。 請參閱授與客戶自控金鑰的存取權。 提供權限之後,應該就能刪除服務了。
在刪除服務之前,客戶已刪除 Key Vault/CMK。
服務中的 CMK 應啟用「虛刪除」和「清除保護」,其預設保留原則為 90 天。 您可以還原已刪除的金鑰。
請檢閱復原已刪除的金鑰和已刪除的金鑰值
已在服務之前刪除使用者指派的受控識別 (UA-MI)。 您可以使用 REST API 從此復原。 您可以使用程式設計語言在所選的 http 用戶端中進行復原。 如果您尚未針對 Azure 驗證的 REST API 呼叫進行任何設定,最簡單的方式就是使用 Fiddler 來進行。 請遵循下列步驟。
使用 GET Url 方法來進行 GET 呼叫:例如 https://management.azure.com/subscriptions/YourSubscription/resourcegroups/YourResourceGroup/providers/Microsoft.DataFactory/factories/YourFactoryName?api-version=2018-06-01
您必須建立具有不同名稱的新使用者受控識別 (相同名稱或許也行可,但為了確保成功,使用的名稱與 GET 回應中的名稱不同會比較安全)
修改 encryption.identity 屬性和 identity.userassignedidentities,以指向新建立的受控識別。 從 userAssignedIdentity 物件中移除 clientId 和 principalId。
對相同 URL 進行 PUT 呼叫以傳遞新本文。 請務必傳遞 GET 回應中取得的任何內容,並只修改身分識別。 否則,會不小心覆寫其他設定。
呼叫成功之後,您就能夠再次看到實體,然後重試刪除。
您可能會在嘗試從 UI 共用自我裝載 IR 時發現其他資料處理站 (在不同租用戶上),但您無法在不同租用戶的資料處理站加以共用。
自我裝載 IR 不能跨租用戶來共用。
如需疑難排解方面的更多協助,請嘗試下列資源:
事件
3月31日 下午11時 - 4月2日 下午11時
規模最大的 Fabric、Power BI 與 SQL 學習盛會。 3 月 31 日至 4 月 2 日。 使用代碼 FABINSIDER 可節省 $400。
立即報名訓練
學習路徑
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
認證
Microsoft Certified: Azure Data Engineer Associate - Certifications
展現對常見資料工程工作的了解,以使用多種 Azure 服務在 Microsoft Azure 上實作和管理資料工程工作負載。