錯誤訊息

瞭解如何解決 Document AI 發生的一些錯誤。本主題討論的錯誤需要較多步驟才能解決,無法於錯誤訊息中簡易描述。

如需錯誤處理的建議做法,請參閱 Cloud API 說明文件

權限

如要解決這個問題,請按照錯誤訊息中的步驟操作。

無法使用應用程式預設憑證

如果您收到以下這則訊息:

The Application Default Credentials are not available. They are
available if running in Compute Engine. Otherwise, the
environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined
pointing to a file defining the credentials.
See https://developers.google.com/accounts/docs/application-default-credentials
for more information.

Document AI 使用應用程式預設憑證進行驗證。

您必須擁有專案的服務帳戶,並將服務帳戶的金鑰 (JSON 檔案) 下載到開發環境,然後將該 JSON 檔案的位置設定成名稱為 GOOGLE_APPLICATION_CREDENTIALS 的環境變數。

此外,您必須在呼叫 Document AI API 的環境中提供 GOOGLE_APPLICATION_CREDENTIALS 環境變數。舉例來說,如果您在終端機工作階段中設定變數,但在 IDE 的偵錯工具中執行程式碼,程式碼的執行環境可能無法存取該變數。在這種情況下,您對 Document AI 的要求可能會因缺乏正確驗證而失敗。

如要進一步瞭解如何設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數,請參閱 Document AI 快速入門導覽課程使用應用程式預設憑證的說明文件。

權限遭拒

如果您收到以下這則訊息:

ERROR: (gcloud.auth.application-default.print-access-token) File
(pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!
{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
}

確認您存在 GOOGLE_APPLICATION_CREDENTIALS 環境變數中的位置具有有效的服務帳戶金鑰 JSON 檔案,且該變數指向正確的地方。

如要診斷此錯誤,請嘗試從您想呼叫 Document AI API 的資料夾開啟服務帳戶金鑰檔案。

cat $GOOGLE_APPLICATION_CREDENTIALS

禁止:403 POST API 未使用或已停用

如果收到以下訊息:

Forbidden: 403 POST Document AI API has not been used in
project # before or it is disabled.
Enable it by visiting [url], then retry.
If you enabled this API recently, wait a few minutes for the action to
propagate and retry.
  1. 前往錯誤訊息中指定的連結,啟用 Document AI API。請稍候幾分鐘,然後再試一次。
  2. 確認您存在 GOOGLE_APPLICATION_CREDENTIALS 環境變數中的位置具有有效的服務帳戶金鑰 JSON 檔案。如要診斷此錯誤,請嘗試從您想呼叫 Document AI API 的資料夾開啟服務帳戶金鑰檔案。
    cat $GOOGLE_APPLICATION_CREDENTIALS
    

寫入最終輸出內容時發生錯誤

如果收到批次處理要求結果時,看到類似以下的訊息:

{
  "name": "projects/project-name/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.document.v1beta1.OperationMetadata",
    "state": "SUCCEEDED",
    "createTime": "2019-09-19T02:02:15.885267760Z",
    "updateTime": "2019-09-19T02:02:31.896425001Z"
  },
  "done": true,
  "error": {
    "code": 5,
    "message": "Error writing final output to: gs://bucket-name/filename.json"
  }
}

您的服務帳戶可能沒有在 Cloud Storage bucket 中建立物件的適當權限。請務必按照快速入門中的說明,為服務帳戶指派正確的權限。

您可能也拼錯了 Cloud Storage 值區的名稱。確認您嘗試存取的 bucket 是否存在。

P4SA 無法存取 Cloud Storage

Document AI 的個別產品服務帳戶 (P4SA) 無權存取部分 Cloud Storage 資源。

message: "Cloud DocumentAI P4SA doesn't have access to this Cloud Storage resource:"

服務帳戶無法在 Cloud Storage 中建立物件

Document AI Per-Product 服務帳戶 (P4SA) 無權在 Cloud Storage 中建立物件。

message: "Service account service-123@gcp-sa-prod-dai-core.iam.gserviceaccount.com
         does not have permission storage.objects.create to create
         Google Cloud Storage object in bucket gs://foo."

Document AI 服務帳戶可能沒有在 Cloud Storage bucket 中建立物件的正確權限。請務必按照「跨專案檔案存取設定」一文所述,為 Document AI 服務帳戶指派正確的權限。

您可能也拼錯了 Cloud Storage 值區的名稱。確認您嘗試存取的 bucket 是否存在。

呼叫端無法取得 Cloud Storage 中的物件

當 Document AI API 的呼叫者沒有權限可取得 Cloud Storage 中的物件時。

message: "The caller does not have permission storage.objects.get to get Google
         Cloud Storage objects in bucket gs://foo."

API 呼叫端可能沒有適當權限,無法取得 Cloud Storage bucket 中的物件。請確認您已為呼叫者指派正確的權限。