本文將探討 Data Factory in Microsoft Fabric 外部控制活動的常見疑難排解方法。
連接器和複製活動
針對連接器問題 (例如使用複製活動時發生錯誤),請參閱針對連接器進行疑難排解一文。
Azure Databricks
錯誤碼:3200
訊息:錯誤 403。
原因:
The Databricks access token has expired.建議:根據預設,Azure Databricks 存取權杖的有效期限為 90天。 建立新的令牌並更新連線。
錯誤碼:3201
訊息:
Missing required field: settings.task.notebook_task.notebook_path.原因:
Bad authoring: Notebook path not specified correctly.建議:在 Databricks 活動中指定筆記本路徑。
訊息:
Cluster... does not exist.原因:
Authoring error: Databricks cluster does not exist or has been deleted.建議:確認 Databricks 叢集存在。
訊息:
Invalid Python file URI... Please visit Databricks user guide for supported URI schemes.原因:
Bad authoring.建議:針對工作區定址配置指定絕對路徑,或針對 Databricks 檔案系統 (DFS) 中所儲存的檔案指定
dbfs:/folder/subfolder/foo.py。
訊息:
{0} LinkedService should have domain and accessToken as required properties.原因:
Bad authoring.建議:確認 連線定義。
訊息:
{0} LinkedService should specify either existing cluster ID or new cluster information for creation.原因:
Bad authoring.建議:驗證 [連線定義]/azure/data-factory/compute-linked-services#azure-databricks-linked-service)。
訊息:
Node type Standard_D16S_v3 is not supported. Supported node types: Standard_DS3_v2, Standard_DS4_v2, Standard_DS5_v2, Standard_D8s_v3, Standard_D16s_v3, Standard_D32s_v3, Standard_D64s_v3, Standard_D3_v2, Standard_D8_v3, Standard_D16_v3, Standard_D32_v3, Standard_D64_v3, Standard_D12_v2, Standard_D13_v2, Standard_D14_v2, Standard_D15_v2, Standard_DS12_v2, Standard_DS13_v2, Standard_DS14_v2, Standard_DS15_v2, Standard_E8s_v3, Standard_E16s_v3, Standard_E32s_v3, Standard_E64s_v3, Standard_L4s, Standard_L8s, Standard_L16s, Standard_L32s, Standard_F4s, Standard_F8s, Standard_F16s, Standard_H16, Standard_F4s_v2, Standard_F8s_v2, Standard_F16s_v2, Standard_F32s_v2, Standard_F64s_v2, Standard_F72s_v2, Standard_NC12, Standard_NC24, Standard_NC6s_v3, Standard_NC12s_v3, Standard_NC24s_v3, Standard_L8s_v2, Standard_L16s_v2, Standard_L32s_v2, Standard_L64s_v2, Standard_L80s_v2.原因:
Bad authoring.建議:請參閱錯誤訊息。
錯誤碼:3202
訊息:
There were already 1000 jobs created in past 3600 seconds, exceeding rate limit: 1000 job creations per 3600 seconds.原因:
Too many Databricks runs in an hour.建議:檢查使用此 Databricks 工作區的所有管線,以了解其作業建立速率。 如果工作流程啟動的 Databricks 操作執行總體過多,請將其中一些工作流程遷移至新的工作區。
訊息:
Could not parse request object: Expected 'key' and 'value' to be set for JSON map field base_parameters, got 'key: "..."' instead.原因:
Authoring error: No value provided for the parameter.建議:檢查管線 JSON,並確保 baseParameters 筆記本中的所有參數都指定非空白值。
訊息:
User:SimpleUserContext{userId=..., name=user@company.com, orgId=...}is not authorized to access cluster.原因:產生存取權杖的使用者不允許存取連線中指定的 Databricks 叢集。
建議:請確定使用者具有工作區中的必要權限。
訊息:
Job is not fully initialized yet. Please retry later.原因:作業尚未初始化。
建議:請稍候,稍後再試一次。
錯誤碼:3203
訊息:
The cluster is in Terminated state, not available to receive jobs. Please fix the cluster or retry later.原因:叢集已終止。 若為互動式叢集,此問題可能是因為競爭狀態。
建議:若要避免此錯誤,請使用作業叢集。
錯誤碼:3204
訊息:
Job execution failed.原因︰錯誤訊息指出各種問題,例如未預期的叢集狀態或特定活動。 通常不會出現任何錯誤訊息。
建議:N/A
錯誤碼:3208
訊息:
An error occurred while sending the request.原因:Databricks 服務的網路連線已中斷。
建議:如果您使用自我裝載 Data Factory 執行階段,則請確定來自 Data Factory 執行階段節點的網路連線可靠。 如果使用 Azure Data Factory 執行階段,則重試通常有效。
布林運算的輸出開始變成字串型別,而非預期的整數型別。
徵狀:您的布林值執行輸出會以字串的形式開始 (例如,
"0"或"1"),而不是預期的 int (例如,0or1)。
當您在 2021 年 9 月 28 日上午 9 點(印度標準時間)注意到這一變更時,依賴此輸出的管線開始失敗。 管線上未進行任何變更,而且布林值輸出資料已如預期在失敗之前到達。
原因:此問題是由最近的變更所造成,這是設計方式所致。 變更之後,如果結果是以零開頭的數字,Data Factory 會將數字轉換成八進位值,這是錯誤。 此數字一律為 0 或 1,永遠不會在變更之前造成問題。 因此,若要修正八進位轉換,字串輸出會以原狀從 Notebook 執行傳遞。
建議:將 if 條件變更為如
if(value=="0")的項目。
Functions
錯誤碼:3602
訊息:
Invalid HttpMethod: '%method;'.原因:Azure Function 活動不支援活動承載中指定的 Httpmethod。
建議:支援的 Httpmethod 是:PUT、POST、GET、DELETE、OPTIONS、HEAD 和 TRACE。
錯誤碼:3603
訊息:
Response Content is not a valid JObject.原因:呼叫的 Azure 函式未在回應中傳回 JSON 承載。 Data Factory 和 Synapse 管線 Azure 函式活動僅支援 JSON 回應內容。
建議:更新 Azure 函數以傳回有效的 JSON 承載,例如 C# 函數可能會傳回
(ActionResult)new OkObjectResult("{\"Id\":\"123\"}");
錯誤碼:3606
訊息:Azure 函數活動遺漏函數金鑰。
原因:Azure 函數活動定義不完整。
建議:檢查輸入 Azure 函數活動 JSON 定義是否具有名為
functionKey的屬性。
錯誤碼:3607
訊息:
Azure function activity missing function name.原因:Azure 函數活動定義不完整。
建議:檢查輸入 Azure 函數活動 JSON 定義是否具有名為
functionName的屬性。
錯誤碼:3608
訊息:
Call to provided Azure function '%FunctionName;' failed with status-'%statusCode;' and message - '%message;'.原因:活動定義中的 Azure 函數詳細資料可能不正確。
建議:請修正 Azure 函數的詳細資料,然後再試一次。
錯誤碼:3609
訊息:
Azure function activity missing functionAppUrl.原因:Azure 函數活動定義不完整。
建議:檢查輸入 Azure 函數活動 JSON 定義是否具有名為
functionAppUrl的屬性。
錯誤碼:3610
訊息:
There was an error while calling endpoint.原因:函數 URL 可能不正確。
建議:請確認活動 JSON 中的
functionAppUrl值正確無誤,然後再試一次。
錯誤碼:3611
訊息:
Azure function activity missing Method in JSON.原因:Azure 函數活動定義不完整。
建議:檢查輸入 Azure 函數活動 JSON 定義是否具有名為
method的屬性。
錯誤碼:3612
訊息:
Azure function activity missing LinkedService definition in JSON.原因:Azure 函數活動定義不完整。
建議:檢查輸入 Azure 函數活動的 JSON 定義是否有連線的詳細資料。
Azure Machine Learning
錯誤碼:4101
訊息:
AzureMLExecutePipeline activity '%activityName;' has invalid value for property '%propertyName;'.原因:
%propertyName;屬性的定義未使用正確格式或遺失。建議:檢查
%activityName;活動的%propertyName;屬性是否已使用正確資料加以定義。
錯誤碼:4110
訊息:
AzureMLExecutePipeline activity missing LinkedService definition in JSON.原因:AzureMLExecutePipeline 活動定義不完整。
建議:檢查輸入 AzureMLExecutePipeline 活動的 JSON 定義是否已正確連線詳細資料。
錯誤碼:4111
訊息:
AzureMLExecutePipeline activity has wrong LinkedService type in JSON. Expected LinkedService type: '%expectedLinkedServiceType;', current LinkedService type: Expected LinkedService type: '%currentLinkedServiceType;'.原因:活動定義不正確。
建議:檢查輸入 AzureMLExecutePipeline 活動的 JSON 定義是否已正確連線詳細資料。
錯誤碼:4112
訊息:
AzureMLService connection has invalid value for property '%propertyName;'.原因:'%propertyName;' 屬性的定義未使用正確格式或遺失。
建議:檢查連線的
%propertyName;屬性是否已使用正確資料加以定義。
錯誤碼:4121
訊息:
Request sent to Azure Machine Learning for operation '%operation;' failed with http status code '%statusCode;'. Error message from Azure Machine Learning: '%externalMessage;'.原因:用來存取 Azure Machine Learning 的認證已過期。
建議:請確認認證有效,然後再試一次。
錯誤碼:4122
訊息:
Request sent to Azure Machine Learning for operation '%operation;' failed with http status code '%statusCode;'. Error message from Azure Machine Learning: '%externalMessage;'.原因:Azure Machine Learning 連線中提供的認證無效,或沒有執行該作業的權限。
建議:請確認連線中的認證有效,而且具有存取 Azure Machine Learning 的權限。
錯誤碼:4123
訊息:
Request sent to Azure Machine Learning for operation '%operation;' failed with http status code '%statusCode;'. Error message from Azure Machine Learning: '%externalMessage;'.原因:
pipelineParameters這類活動屬性不適用於 Azure Machine Learning (ML) 管線。建議:檢查活動屬性值是否與連線中指定且已發佈的 Azure Machine Learning 管線的預期負載相符。
錯誤碼:4124
訊息:
Request sent to Azure Machine Learning for operation '%operation;' failed with http status code '%statusCode;'. Error message from Azure Machine Learning: '%externalMessage;'.原因:已發佈的 Azure Machine Learning 管線端點不存在。
建議:確認連線中指定且已發佈的 Azure Machine Learning 管線端點存在於 Azure Machine Learning 中。
錯誤碼:4125
訊息:
Request sent to Azure Machine Learning for operation '%operation;' failed with http status code '%statusCode;'. Error message from Azure Machine Learning: '%externalMessage;'.原因:Azure Machine Learning 上發生伺服器錯誤。
建議:稍後重試。 如果問題持續發生,請洽詢 Azure Machine Learning 小組以取得協助。
錯誤碼:4126
訊息:
Azure ML pipeline run failed with status: '%amlPipelineRunStatus;'. Azure ML pipeline run Id: '%amlPipelineRunId;'. Please check in Azure Machine Learning for more error logs.原因:Azure Machine Learning 管線執行失敗。
建議:檢查 Azure Machine Learning 以取得更多錯誤記錄,然後修正 ML 管線。
常見
錯誤碼:2103
訊息:
Please provide value for the required property '%propertyName;'.原因:未提供屬性所需的值。
建議:提供訊息中的值,然後再試一次。
錯誤碼:2104
訊息:
The type of the property '%propertyName;' is incorrect.原因:提供的屬性類型不正確。
建議:請修正屬性的類型,然後再試一次。
錯誤碼:2105
訊息:
An invalid json is provided for property '%propertyName;'. Encountered an error while trying to parse: '%message;'.原因:屬性的值無效,或不是預期的格式。
建議:請參閱屬性的文件,並確認提供的值包含正確的格式和類型。
錯誤碼:2106
訊息:
The storage connection string is invalid. %errorMessage;原因:儲存體的連接字串無效或格式不正確。
建議:請移至 Azure 入口網站並尋找您的儲存體,然後將連接字串複製並貼到您的連線中,然後再試一次。
錯誤碼:2110
訊息:
The connection type '%linkedServiceType;' is not supported for '%executorType;' activities.原因:活動中指定的連線不正確。
建議:確認連線類型是活動支援的其中一個類型。
錯誤碼:2111
訊息:
The type of the property '%propertyName;' is incorrect. The expected type is %expectedType;.原因:提供的屬性類型不正確。
建議:請修正屬性類型,然後再試一次。
錯誤碼:2112
訊息:
The cloud type is unsupported or could not be determined for storage from the EndpointSuffix '%endpointSuffix;'.原因:EndpointSuffix 中儲存體的雲端類型不受支援或無法判斷。
建議:請使用另一個雲端中的儲存體,然後再試一次。
Azure Batch
下表適用於 Azure Batch。
錯誤碼:2500
訊息:
Hit unexpected exception and execution failed.原因:
Can't launch command, or the program returned an error code.建議:請確認可執行檔存在。 如果程式已啟動,請確認 stdout.txt 和 stderr.txt 已上傳至儲存體帳戶。 在您程式碼中包含記錄是利於偵錯的好方法。
錯誤碼:2501
訊息:
Cannot access user batch account; please check batch account settings.原因:不正確的 Batch 存取金鑰或集區名稱。
建議:請確認連線中的集區名稱和 Batch 存取金鑰。
錯誤碼:2502
訊息:
Cannot access user storage account; please check storage account settings.原因:儲存體帳戶名稱或存取金鑰不正確。
建議:請確認連線中的儲存體帳戶名稱和存取金鑰。
錯誤碼:2504
訊息:
Operation returned an invalid status code 'BadRequest'.原因:Azure 活動的
folderPath中有太多檔案。resourceFiles的大小總計不能超過 32,768 個字元。建議:移除不必要的檔案或將其壓縮,並新增 unzip 命令來將其解壓縮。
例如,使用
powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory($zipFile, $folder); }" ; $folder\yourProgram.exe
錯誤碼:2505
訊息:
Cannot create Shared Access Signature unless Account Key credentials are used.原因:Azure Batch 活動僅支援使用存取金鑰的儲存體帳戶。
建議:請參閱錯誤描述。
錯誤碼:2507
訊息:
The folder path does not exist or is empty: ...原因:位於指定路徑的儲存體帳戶中沒有任何檔案。
建議:資料夾路徑必須包含您想要執行的可執行檔。
錯誤碼:2508
訊息:
There are duplicate files in the resource folder.原因:資料夾路徑的不同子資料夾中有多個名稱相同的檔案。
建議:Azure Batch 活動會將 folderPath 下的資料夾結構扁平化。 如果您需要保留資料夾結構,請壓縮檔案,並使用解壓縮命令在 Azure Batch 中將檔案解壓縮。
例如,使用
powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory($zipFile, $folder); }" ; $folder\yourProgram.exe
錯誤碼:2509
訊息:
Batch url ... is invalid; it must be in Uri format.原因:Batch URL 必須類似於
https://mybatchaccount.eastus.batch.azure.com建議:請參閱錯誤描述。
錯誤碼:2510
訊息:
An error occurred while sending the request.原因:Batch URL 無效。
建議:確認 Batch URL。
網路活動
錯誤碼:2001
訊息:
The length of execution output is over limit (around 4MB currently).原因:執行輸出的大小大於 4 MB,但支援的輸出回應承載大小上限為 4 MB。
建議:確定執行輸出大小未超過 4 MB。 如需詳細資訊,請參閱如何使用 Data Factory 擴展移動資料的大小。
錯誤碼:2002
訊息:
The payload including configurations on activity/data/connection is too large. Please check if you have settings with very large value and try to reduce its size.原因:您嘗試傳送的承載太大。
建議:請參閱承載太大。
錯誤碼:2003
訊息:
There are substantial concurrent external activity executions which is causing failures due to throttling under subscription <subscription id>, region <region code> and limitation <current limit>. Please reduce the concurrent executions. For limits, refer https://aka.ms/adflimits.原因:同時執行太多活動。 同時觸發太多管線時,就會發生此狀況。
建議:減少管線並行。 您可能需要分散管線的觸發時間。
錯誤碼:2105
訊息:
The value type '<provided data type>', in key '<key name>' is not expected type '<expected data type>'原因:在動態內容運算式中產生的資料與索引鍵不符,並且導致 JSON 剖析失敗。
建議:檢查索引鍵,並修正動態內容定義。
錯誤碼:2108
訊息:
Error calling the endpoint '<URL>'. Response status code: 'NA - Unknown'. More details: Exception message: 'NA - Unknown [ClientSideException] Invalid Url: <URL>. Please verify Url or Data Factory runtime is valid and retry. Localhost URLs are allowed only with SelfHosted Data Factory runtime'原因:無法連線到提供的 URL。 可能的原因包括網路連線有問題、URL 無法解析,或在 Azure Data Factory 執行階段上使用了 localhost URL。
建議:確認提供的 URL 可供存取。
訊息:
Error calling the endpoint '%url;'. Response status code: '%code;'原因:要求因為基本問題而失敗,例如網路連線、DNS 失敗、伺服器憑證驗證或逾時。
建議:使用 Fiddler/Netmon/Wireshark 來驗證要求。
使用 Fiddler
若要使用 Fiddler 來為受監視的 Web 應用程式建立 HTTP 工作階段:
下載、安裝和開啟 Fiddler。
如果您的 Web 應用程式使用 HTTPS,請移至 [工具]>[Fiddler 選項]>[HTTPS]。
在 [HTTPS] 索引標籤中,選取 [取得 HTTPS 連線] 和 [將 HTTPS 流量解密]。
如果您的應用程式使用 TLS/SSL 憑證,請將 Fiddler 憑證新增至您的裝置。
移至:[工具] > [Fiddler 選項] > [HTTPS] > [動作] > [將根憑證匯出到桌面]。
藉由前往 [檔案]>[擷取流量] 來關閉擷取作業。 或是按下 F12。
清除瀏覽器的快取後,所有快取的項目都會移除,因此必須重新下載。
建立要求:
選取 作曲器 索引標籤。
設定 HTTP 方法和 URL。
如有需要,請新增標頭和請求主體。
選取 [執行]。
再次開啟流量擷取,並在您的頁面上完成有問題的交易。
移至:檔案>儲存>所有工作階段。
如需詳細資訊,請參閱開始使用 Azure Fiddler
錯誤碼:2113
訊息:
ExtractAuthorizationCertificate: Unable to generate a certificate from a Base64 string/password combination原因:無法從 Base64 字串/密碼組合產生憑證。
建議:確認已正確輸入您所使用的 Base64 編碼 PFX 憑證和密碼組合。
錯誤碼:2403
訊息:
Get access token from MSI failed for Datafactory <DF mname>, region <region code>. Please verify resource url is valid and retry.原因:無法從提供的資源 URL 取得存取權杖。
建議:確認您已為受控識別提供正確的資源 URL。
一般
錯誤代碼:LSROBOTokenFailure
訊息:
Access has been blocked by Conditional Access policies. The access policy does not allow token issuance.Device object was not found in the tenant 'YY' directory.The provided grant has expired due to it being revoked, a fresh auth token is needed. The user might have changed or reset their password.
原因:
- Microsoft Entra ID 會檢查 refresh token 中的
deviceId聲明。 若該裝置已不存在、停用或不再符合條件存取要求,憑證發放將失敗。 - 管線會使用儲存的刷新令牌在執行時取得新的存取權杖。 如果使用者的密碼更改或憑證被撤銷,該儲存的憑證將無法再取得有效的存取憑證。
- 如果使用者離開組織,相關的裝置或帳號狀態通常會改變。 這項變更可能會使現有管線所使用的代幣鏈失效。
- Microsoft Entra ID 會檢查 refresh token 中的
建議:更新並儲存每個受影響的管線,以刷新其認證上下文(例如更新描述)。 如果多條管線使用舊憑證,請更新並儲存每一條。 腳本範例可用 此腳本更新一條或幾條管線 ,或用 此腳本更新訂閱中的所有管線。
REST 接續權杖 Null 錯誤
錯誤訊息: {"token":null,"range":{"min":..}
原因:跨多個分割區/頁面查詢時,後端服務會傳回 JObject 格式的接續權杖,具有 3 個屬性:權杖、最小和最大索引鍵範圍,例如,{"token":null,"range":{"min":"05C1E9AB0DAD76","max":"05C1E9CD673398"}})。 取決於來源資料,查詢可能會產生 0,表示缺少令牌,但仍有更多資料需要擷取。
建議:當 continuationToken 非 Null 時,字串為 {"token":null,"range":{"min":"05C1E9AB0DAD76","max":"05C1E9CD673398"}},需要使用先前回應的接續權杖,再次呼叫 queryActivityRuns API。 您必須再次傳遞查詢 API 的完整字串。 活動會在查詢結果的後續頁面中返回。 您應該忽略此頁面中的空陣列,只要 continuationToken 的完整值不等於 null,您就需要繼續查詢。 如需詳細資訊,請參閱用於管線執行查詢的 REST API。
活動停滯問題
當您觀察到活動執行的時間比正常執行還要久,但幾乎沒有任何進展時,可能已經卡住了。 您可以嘗試取消然後重試,看看是否有幫助。 如果是複製活動,您可以從針對複製活動效能進行疑難排解了解效能監測和疑難排解;如果是資料流,請從對應資料流效能和調整指南中了解。
承載過大
錯誤訊息: The payload including configurations on activity/data/connection is too large. Please check if you have settings with very large value and try to reduce its size.
原因:每個活動執行的承載包含活動設定、相關聯的資料和連線組態 (若有的話),以及每個活動類型所產生的一小部分系統屬性。 此類承載大小的限制是 896 KB,如同 Data Factory 和 Azure Synapse Analytics 的 Azure 限制文件中所述。
建議:您可能會因為從上游活動輸出或外部傳入一或多個大型參數值而達到此限制,特別是當您在控制流程中跨活動傳遞實際資料時。 檢查您是否可以減少大型參數值的大小,或調整管線邏輯,以避免跨活動傳遞這類值,並改為在活動內處理。
不支援的壓縮導致檔案損壞
徵狀:您嘗試解壓縮儲存在 Blob 容器中的檔案。 單一管道中的複製活動來源,壓縮類型設定為「deflate64」或其他不支援的類型。 此活動會順利執行,並產生以 zip 檔案包含的文字檔。 不過,檔案中的文字有問題,而且此檔案似乎已損毀。 在本機解壓縮此檔案時,沒有問題。
原因:您的 zip 檔案會由 「deflate64」 演算法壓縮,而 Data Factory 的內部 zip 連結庫僅支援 “deflate”。如果 zip 檔案是由 Windows 系統壓縮,而整體檔案大小超過特定數目,則 Windows 預設會使用 Data Factory 不支援的 “deflate64”。 另一方面,如果檔案大小較小,或使用支援指定壓縮演算法的某些第三方 zip 工具,則 Windows 預設會使用「deflate」。
提示
實際上,Data Factory 和 Synapse Analytics 中的二進位格式和 Data Factory 和 Azure Synapse Analytics 中分隔的文字格式,都清楚指出 Data Factory 中不支援「deflate64」格式。
執行管線會以字串形式將陣列參數傳遞至子管線
錯誤訊息: Operation on target ForEach1 failed: The execution of template action 'MainForEach1' failed: the result of the evaluation of 'foreach' expression '@pipeline().parameters.<parameterName>' is of type 'String'. The result must be a valid array.
原因:即使您在執行管線中建立陣列類型的參數 (如下圖所示),管線還是會失敗。
這是因為載荷會從父管道傳遞至子管道作為字串。 在我們檢查傳遞至子管線的輸入時,就會看到此結果。
建議:若要解決此問題,我們可以套用 create array 函數,如下圖所示。
然後我們的管道就成功了。 我們可以在輸入方塊中看到傳遞的參數是陣列。
相關內容
如需更多疑難排解的協助,請嘗試下列資源: