

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對 Amazon Bedrock API 錯誤碼進行疑難排解
<a name="troubleshooting-api-error-codes"></a>

本節提供有關使用 Amazon Bedrock API 時可能遇到的常見錯誤、錯誤原因及錯誤解決方案的詳細資訊。

## AccessDeniedException
<a name="ts-access-denied"></a>

**HTTP 狀態碼：**403

**原因：**您沒有足夠的許可來執行請求的動作。

**解決方案**：
+ 確認您的 IAM 使用者或角色具有您正嘗試動作的必要許可。
+ 如果您使用的是臨時安全憑證，請確保其尚未過期。

## FTUFormNotFilled
<a name="ts-ftu-form"></a>

**HTTP 狀態碼：**404

**原因：**尚未為此帳戶提交模型使用案例詳細資訊

**解決方案**：
+ 使用模型之前，請先填寫 Anthropic 使用案例詳細資訊表單

## IncompleteSignature
<a name="ts-incomplete-signature"></a>

**HTTP 狀態碼：**400

**原因：**請求簽章不符合 AWS 標準。

**解決方案**：
+ 請確定您使用的是支援 Amazon Bedrock 的 AWS SDK 版本。
+ 確認您的 AWS 存取金鑰 ID 和私密金鑰已正確設定。
+ 如果您手動簽署請求，建議您重新檢查簽章計算程序。

## InternalFailure
<a name="ts-internal-failure"></a>

**HTTP 狀態碼：**500

**原因：**請求處理因伺服器錯誤而失敗

**解決方案**：
+ 我們建議採用 AWS 建議的[重試方法，搭配指數退避](https://docs.aws.amazon.com//prescriptive-guidance/latest/cloud-design-patterns/retry-backoff.html)和隨機[抖動](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/)來改善可靠性。
+ 如果問題仍然存在，請聯絡 [AWS 支援中心](https://aws.amazon.com/support)，並提供有關您的請求及所遇到錯誤的詳細資訊。

## InvalidAction
<a name="ts-invalid-action"></a>

**HTTP 狀態碼：**400

**原因：**請求的動作或操作無效。

**解決方案**：
+ 建議您再次檢查請求中動作名稱的拼字和格式。
+ 確認動作呼叫受 Amazon Bedrock 支援，並已依照 [Amazon Bedrock API 參考](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_Operations.html)所示正確記錄下來。
+ 請確定您使用的是 SDK up-to-date。 AWS 

## InvalidClientTokenId
<a name="ts-invalid-client-token"></a>

**HTTP 狀態碼：**403

**原因：**提供的 X.509 憑證或 AWS 存取金鑰 ID 不存在於我們的記錄中。

**解決方案**：
+ 確認您使用的是正確的 AWS 存取金鑰 ID。
+ 如果您最近建立了新的存取金鑰，請確定您使用的是新憑證，而不是舊憑證。

## AWS Marketplace 協議在 15 分鐘內失敗
<a name="ts-mp-agreement-failed"></a>

**HTTP 狀態碼：**403

**原因： ** AWS Marketplace 協議因基礎問題而失敗。

**解決方案**：
+ 檢閱錯誤訊息並修復基礎問題。常見的基礎問題有無效付款錯誤和地理位置受限。
+ 對於無效的付款錯誤，請在 Amazon Bedrock 中請求模型存取後，針對[使用 AWS Marketplace 和 INVALID\_PAYMENT\_INSTRUMENT 的 AISPL 客戶檢閱信用卡和簽帳金融卡購買限制](https://aws.amazon.com/blogs/awsmarketplace/restriction-on-credit-and-debit-card-purchases-for-aispl-customers-using-aws-marketplace/)。 [https://repost.aws/questions/QU0UOsutrWSSS4nOqgHcIUJg/invalid-payment-instrument-after-requesting-model-access-in-amazon-bedrock](https://repost.aws/questions/QU0UOsutrWSSS4nOqgHcIUJg/invalid-payment-instrument-after-requesting-model-access-in-amazon-bedrock)

## AWS 15 分鐘後待定的 Marketplace 協議
<a name="ts-mp-agreement-pending"></a>

**HTTP 狀態碼：**403

**原因：** AWS Market Marketplace 協議未成功，且自提出請求以來已經過 15 分鐘。

**解決方案**：
+ 每 15 分鐘再次嘗試請求。如果問題仍然存在，請聯絡 [AWS 支援中心](https://aws.amazon.com/support)，並提供有關您的請求及所遇到錯誤的詳細資訊。

## MPAgreementBeingCreated
<a name="ts-mp-agreement-created"></a>

**HTTP 狀態碼：**403

**原因：**您的帳戶未獲授權存取此模型。此模型的 AWS Marketplace 訂閱仍在處理中

**解決方案**：
+ 15 分鐘後再試一次

## NotAuthorized
<a name="ts-not-authorized"></a>

**HTTP 狀態碼：**400

**原因：**您沒有執行此動作的許可。

**解決方案**：
+ 檢閱您的 IAM 許可，並確保您擁有對 Amazon Bedrock 資源執行所請求動作的必要權限。
+ 如果您使用的是 IAM 角色，請確認該角色具有適當的許可和信任關係。
+ 檢查是否有任何組織政策或服務控制政策可能限制您的存取。

## RequestExpired
<a name="ts-request-expired"></a>

**HTTP 狀態碼：**400

**原因：**由於時間戳記過期，請求不再有效。

**解決方案**：
+ 確保您的系統時鐘與可靠的時間來源正確同步。
+ 如果您從不同的時區提出請求，請注意時間戳記可能會有差異。

## ServiceUnavailable
<a name="ts-service-unavailable"></a>

**HTTP 狀態碼：**503

**原因：**服務暫時無法處理請求。503 錯誤表示服務遇到高需求或暫時容量限制。這與您的帳戶層級配額或速率限制 （傳回 429 ThrottlingException) 無關。

**解決方案**：
+ 我們建議採用 AWS 建議的[重試方法，搭配指數退避](https://docs.aws.amazon.com//prescriptive-guidance/latest/cloud-design-patterns/retry-backoff.html)和隨機[抖動](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/)來改善可靠性。
+  AWS 區域 如果問題仍存在目前區域中，請考慮切換到不同的 。不同的區域可能會有不同的負載和可用性層級。
+ [使用跨區域推論](https://docs.aws.amazon.com//bedrock/latest/userguide/cross-region-inference.html)，透過跨不同運算無縫管理意外流量暴增 AWS 區域。
+ 如果您有高輸送量需求，建議您針對使用案例探索[佈建輸送量](https://docs.aws.amazon.com//bedrock/latest/userguide/prov-throughput.html)。

**最佳實務**
+ 確保您的應用程式可以在錯誤處理和重試邏輯中會適當處理 503 狀態碼。
+ 檢查 AWS 服務運作狀態儀表板，了解可能影響服務的任何問題或排定的維護。

如果您經常遇到 503 錯誤，或這些錯誤對您的操作造成重大影響，請聯絡 [AWS Support](https://aws.amazon.com/support) 以取得針對您特定使用案例量身打造的進一步協助和指引。

## ThrottlingException
<a name="ts-throttling-exception"></a>

**HTTP 狀態碼：**429

**原因：**由於超過 Amazon Bedrock 的帳戶配額，請求遭拒。

**解決方案**：
+ 檢查 [Amazon Bedrock 服務配額](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#limits_bedrock)主控台中的 Amazon Bedrock 服務配額，以了解分配給您帳戶的限制。
+ 我們建議採用 AWS 建議的方法來使用[具有指數退避的重試。](https://docs.aws.amazon.com//prescriptive-guidance/latest/cloud-design-patterns/retry-backoff.html) 和隨機[抖動](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/)可提高可靠性。
+ 如果您有高輸送量需求，建議您針對使用案例探索[佈建輸送量](https://docs.aws.amazon.com//bedrock/latest/userguide/prov-throughput.html)。
+ 如果您的工作負載流量超過您的帳戶配額，請聯絡您的客戶經理或 [AWS Support](https://aws.amazon.com/support)，以請求提高配額。

## ValidationError
<a name="ts-validation-error"></a>

**HTTP 狀態碼：**400

**原因：**輸入不符合 Amazon Bedrock 指定的限制條件。

**解決方案**：
+ 檢閱 API 文件，以確保所有必要參數皆已正確納入並格式化。
+ 檢查您的輸入值是否在允許的範圍內或符合預期的模式。
+ 對於您正在使用的動作，建議您注意 API 參考中提及的任何特定驗證規則。

## ResourceNotFound
<a name="ts-resource-not-found"></a>

**HTTP 狀態碼：**404

**原因：**找不到請求的資源。

**解決方案**：
+ 驗證請求中模型 ID、端點名稱或其他資源識別碼的正確性。
+ 請實作後援機制，以便在找不到主要資源時使用替代模型或端點。

**最佳實務**
+ 使用 [ListFoundationModels](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_ListFoundationModels.html) 了解您可以使用的可用 Amazon Bedrock 基礎模型。
+ 建議您實作定期同步程序，以更新本機資源目錄。

如果您在嘗試過這些解決方案後仍遇到問題，請聯絡 [AWS Support](https://aws.amazon.com/support) 以取得針對您特定使用案例量身打造的進一步協助和指引。

## 長時間執行或閒置連線上的連線逾時或重設
<a name="ts-connection-timeout"></a>

**徵狀：**當流量通過 NAT 閘道、介面 VPC 端點或 Network Load Balancer 時，API 呼叫會因連線重設或逾時而失敗，特別是對於串流、延伸思考或大型推論回應等長時間執行的請求。當閒置集區連線在網路無提示地捨棄時重複使用時，症狀也可能顯示為較長的冷啟動延遲 （例如，閒置期間後的第一個呼叫需要 70 秒以上，而不是一般少數）。

**原因：**NAT 閘道、介面 VPC 端點和 Network Load Balancer 的固定閒置連線逾時為 350 秒。如果 TCP 連線保持閒置超過此期間，則會捨棄連線，而不會通知用戶端。在下一次請求之前，用戶端可能不會偵測到中斷的連線，此時用戶端必須等待作業系統層級 TCP 重試或逾時，才能重新建立連線。

**適用時：**
+ 在 Amazon EKS 或 Amazon ECS 上執行的應用程式，其中傳送至 Amazon Bedrock 的 Pod 流量會透過 NAT Gateway 或 VPC 介面端點輸出。
+ 在 NAT Gateway 後方的 Amazon EC2 執行個體上執行的應用程式、Amazon Bedrock 的介面 VPC 端點或 Network Load Balancer。
+ 長時間執行或爆量工作負載，其中 Amazon Bedrock 用戶端連線在通話之間的連線集區中閒置。

**解決方案**：

在 Amazon Bedrock 用戶端上啟用 TCP 保持連線需要*兩個*同時運作的設定。只設定一個是不夠的。

1. **在 AWS 開發套件用戶端中啟用 TCP 保持連線。**boto3 `Config` 物件接受 `tcp_keepalive` 參數，預設為 `False`。在建構 Amazon Bedrock 用戶端`True`時將其設定為 ：

   ```
   import boto3
   from botocore.config import Config
   
   config = Config(tcp_keepalive=True)
   client = boto3.client("bedrock-runtime", config=config)
   ```

   如需其他 AWS SDKs，請參閱對應的 HTTP 用戶端組態文件。

1. **將作業系統層級保持連線間隔設定為在 350 秒閒置逾時之前觸發。**Linux 預設為 `net.ipv4.tcp_keepalive_time = 7200`(2 小時），這比 NAT 或 VPC 端點閒置逾時長得多，因此 SDK 層級單獨保持連線沒有效果。將核心設定安全地降到低於 350 秒的值 （例如 45 秒）：

   ```
   sysctl -w net.ipv4.tcp_keepalive_time=45
   ```

   在 Amazon EKS 和 Amazon ECS 上，在 Pod 或任務 `securityContext`、初始化容器或自訂節點 AMI 中套用 sysctl。在 Amazon EC2 上，將其設定為 ，`/etc/sysctl.d/`讓值在重新開機期間持續存在。

如需 VPC 網路中長時間執行 TCP 連線的深入討論，請參閱 AWS 網路與內容交付部落格上的在 [VPC 網路內實作長時間執行 TCP 連線](https://aws.amazon.com/blogs/networking-and-content-delivery/implementing-long-running-tcp-connections-within-vpc-networking/)。

如果您在套用這兩個設定後持續遇到連線問題，請聯絡 [AWS Support](https://aws.amazon.com/support) 以取得進一步協助。