

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

# HTTP 503 狀態碼 (服務無法使用)
<a name="http-503-service-unavailable"></a>

HTTP 503 狀態碼 (服務無法使用) 通常表示原始伺服器上的效能問題。在極少數情況下，這表示 CloudFront 因為節點上的資源限制，暫時無法滿足請求。

如果您使用的是 Lambda@Edge 或 CloudFront Functions，問題可能是執行錯誤或 Lambda@Edge 超過限制錯誤。

**Topics**
+ [原始伺服器沒有足夠的容量來支援請求率](#http-503-service-unavailable-not-enough-origin-capacity)
+ [CloudFront 由於節點上的資源限制導致錯誤](#http-503-service-unavailable-limited-resources-at-edge-location)
+ [Lambda@Edge 或 CloudFront Function 執行錯誤](#http-503-lambda-execution-error)
+ [超過 Lambda@Edge 限制](#http-503-lambda-limit-exceeded-error)

## 原始伺服器沒有足夠的容量來支援請求率
<a name="http-503-service-unavailable-not-enough-origin-capacity"></a>

當原始伺服器無法使用或無法提供傳入請求時，它會傳回 HTTP 503 狀態碼 (服務無法使用)。然後 CloudFront 將此錯誤傳回給使用者。若要解決這個問題，請嘗試下列解決方案：
+ **如果您使用 Amazon S3 做為原始伺服器**：
  + 您可以傳送每個分割的 Amazon S3 字首每秒 3,500 個 PUT/COPY/POST/DELETE 和 5,500 個 GET/HEAD 請求。當 Amazon S3 傳回 503 慢速下降回應時，這通常表示針對特定 Amazon S3 字首的請求率過高。

    由於請求率適用於 S3 儲存貯體中的每個字首，因此物件應分散到多個字首。隨著字首上的請求率逐漸增加，Amazon S3 會向上擴展以分別處理每個字首的請求。因此，儲存貯體能處理的整體請求率為字首數的倍數。
  + 如需詳細資訊，請參閱*《Amazon Simple Storage Service 使用者指南》*中的[最佳化 Amazon S3 效能](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html)。
+ **如果您使用 Elastic Load Balancing 做為原始伺服器**：
  + 確定您的後端執行個體可以回應運作狀態檢查。
  + 確定您的負載平衡器和後端執行個體可以處理負載。

  如需詳細資訊，請參閱：
  + [如何對 Classic Load Balancer 的 503 錯誤進行疑難排解？](https://repost.aws/knowledge-center/503-error-classic)
  + [如何對 Application Load Balancer 的 503 (服務無法使用) 錯誤進行疑難排解？](https://repost.aws/knowledge-center/alb-troubleshoot-503-errors)
+ **如果您使用自訂原始伺服器**：
  + 檢查應用程式日誌，以確保原始伺服器有足夠的資源，例如記憶體、CPU 和磁碟大小。
  + 如果使用 Amazon EC2 做為後端，請確保執行個體類型都有適當的資源，以符合傳入的請求。如需詳細資訊，請參閱《Amazon EC2 使用者指南》中的[執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)。
+ **如果您使用 API Gateway**：
  + 此錯誤與當 API Gateway API 無法接收回應時的後端整合有關。後端伺服器可能：
    + 超載超過容量，無法處理新的用戶端請求。
    + 臨時維護中。
  + 若要解決此錯誤，請查看您的 API Gateway 應用程式日誌，以判斷後端容量、整合或其他問題。

## CloudFront 由於節點上的資源限制導致錯誤
<a name="http-503-service-unavailable-limited-resources-at-edge-location"></a>

在極少數的情況下，您會收到此錯誤，CloudFront 無法將請求路由到下一個最佳的可用節點，也因此無法滿足請求。在 CloudFront 分佈中執行負載測試時，常見此錯誤。為協助防止此種情況，請遵循 [負載測試 CloudFront](load-testing.md) 準則，以避免 503 (容量超過) 錯誤。

如果您的生產環境中發生這種情況，請聯絡 [支援](https://console.aws.amazon.com/support/home#/)。

## Lambda@Edge 或 CloudFront Function 執行錯誤
<a name="http-503-lambda-execution-error"></a>

如果您使用 Lambda@Edge 或 CloudFront Functions，HTTP 503 狀態碼可能表示您的函數傳回執行錯誤。

如需如何識別和解決 Lambda@Edge 錯誤的詳細資訊，請參閱 [測試和偵錯 Lambda@Edge 函數](lambda-edge-testing-debugging.md)。

如需測試 CloudFront Functions 的詳細資訊，請參閱 [測試函數](test-function.md)。

## 超過 Lambda@Edge 限制
<a name="http-503-lambda-limit-exceeded-error"></a>

如果您使用 Lambda@Edge，HTTP 503 狀態碼可能表示 Lambda 傳回了錯誤。此錯誤可能由以下其中一項原因造成：
+ 函數執行次數超過 Lambda 設定以調節 AWS 區域 （並行執行或調用頻率） 執行的其中一個配額。
+ 此函數已超過 Lambda 函數逾時配額。

如需 Lambda@Edge 配額的詳細資訊，請參閱 [Lambda@Edge 的配額](cloudfront-limits.md#limits-lambda-at-edge)。如需如何識別和解決 Lambda@Edge 錯誤的詳細資訊，請參閱 [測試和偵錯 Lambda@Edge 函數](lambda-edge-testing-debugging.md)。您也可以參閱《*AWS Lambda 開發人員指南*》中的 [Lambda 服務配額](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)。