本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon API 網關重要說明
以下部分詳細說明了可能會影響您使用 API Gateway 的注意事項。
主題
Amazon API 網關RESTAPIs、HTTPAPIs和的重要注意事項 WebSocket APIs
-
簽名版本 4A 不受 Amazon API 網關的官方支援。
Amazon API 網關REST和重要注意事項 WebSocket APIs
-
API閘道不支援在REST和之間共用自訂網域名稱 WebSocket APIs。
-
階段名稱僅可含有英數字元、連字號與底線。長度上限為 128 字元。
-
系統會為服務運作狀態檢查保留
/ping
和/sping
的路徑。將這些用於具有自定義域的API根級資源將無法產生預期的結果。 -
API閘道目前將記錄事件限制為 1024 位元組。大於 1024 位元組的記錄事件 (例如要求和回應本文) 會在提交至 CloudWatch 記錄檔之前被 API Gateway 截斷。
-
CloudWatch 量度目前將維度名稱和值限制為 255 個有效XML字元。(如需詳細資訊,請參閱《CloudWatch 使用指南》。) 維度值是使用者定義名稱的函數,包括API名稱、標籤 (階段) 名稱和資源名稱。選擇這些名稱時,請注意不要超過 CloudWatch 量度限制。
-
映射範本的大小上限為 300 KB。
Amazon API 網關重要注意事項 WebSocket APIs
-
API閘道支援訊息承載高達 128 KB,訊框大小上限為 32 KB。如果訊息超過 32 KB,則必須分割成多個影格,每個為 32 KB 或以下。如果接收到更大的訊息,則該連線會關閉,並出現程式碼 1009。
Amazon API 網關重要注意事項 REST APIs
-
任何請求URL查詢字串都不支援純文字管道字元 (
|
),且必須使用 URL-code。 -
分號字元 (
;
) 不支援任何要求URL查詢字串,而且會導致資料被分割。 -
RESTAPIs在將URL編碼的請求參數傳遞給後端整合之前,先解碼。對於 UTF -8 個請求參數,RESTAPIs解碼參數,然後將它們作為 unicode 傳遞給後端集成。
-
使用 API Gateway 主控台測試時,如果自我簽署憑證提供給後端API、憑證鏈中遺失中繼憑證,或是後端擲回的任何其他無法辨識的憑證相關例外狀況,您可能會收到「未知的端點錯誤」回應。
-
對於具有私有整合的API
Resource
或Method
實體,您應該在移除.VpcLink
否則,您會有懸置的整合,並收到錯誤訊息,指出即使刪除Resource
或Method
實體,VPC連結仍在使用中。私有整合透過階段變數參考VpcLink
時,此行為不適用。 -
下列後SSL端可能不支援與 API Gateway 相容的用戶端驗證:
-
API閘道支援大部分的 Open API 2.0 規格
和 Open API 3.0 規格 ,但下列例外: -
路徑區段只能包含英數字元、底線、連字號、句號、逗號、冒號和大括號。路徑參數必須是個別的路徑區段。例如,"resource/{path_parameter_name}" 有效,"resource{path_parameter_name}" 卻無效。
-
模型名稱只能包含英數字元。
-
針對輸入參數,只支援下列屬性:
name
、in
、required
、type
、description
。其他屬性一概忽略。 -
securitySchemes
類型 (若已使用) 必須是apiKey
。不過,Lambda 授權人支援 OAuth 2 和HTTP基本驗證;Open API 組態是透過廠商擴充功能來實現的。 -
此
deprecated
欄位不受支援,而且會在匯出時捨棄此欄位APIs。 -
API閘道模型是使用JSON結構描述草稿 4
來定義,而不是 Open 使用的JSON結構描述API。 -
在任何結構描述物件中,不支援
discriminator
參數。 -
不支援
example
標籤。 -
exclusiveMinimum
API閘道不支援。 -
簡單請求驗證不包含
maxItems
和minItems
標籤。若要解決這個問題,請在執行驗證之前於匯入後更新模型。 -
oneOf
不支援「開放 API 2.0」或「SDK層代」。 -
不支援
readOnly
欄位。 -
$ref
無法用於參考其他檔案。 -
開啟API文件根目錄中不支援
"500": {"$ref": "#/responses/UnexpectedError"}
表單的回應定義。若要解決這個問題,請將參考取代為內嵌結構描述。 -
不支援
Int32
或Int64
類型的數字。範例顯示如下:"elementId": { "description": "Working Element Id", "format": "int32", "type": "number" }
-
在結構描述定義中,不支援小數格式類型 (
"format": "decimal"
)。 -
在方法回應中,結構描述定義必須為物件類型,而且不能是基本類型。例如,不支援
"schema": { "type": "string"}
。不過,您可以使用下列物件類型來解決這個問題:"schema": { "$ref": "#/definitions/StringResponse" } "definitions": { "StringResponse": { "type": "string" } }
-
API閘道不使用 Open API 規格中定義的根層級安全性。因此您需要在操作層級中定義安全性,以便適當應用。
-
不支援
default
關鍵字。
-
-
API閘道在處理具有 Lambda 整合或HTTP整合的方法時,會制定下列限制和限制。
-
標頭名稱和查詢參數是以區分大小寫的方式進行處理。
-
傳送至整合端點或由整合端點送回時,可能會將下列資料表清單中的標頭捨棄或修改:在此資料表中:
-
Remapped
表示標頭名稱從
變更為<string>
X-Amzn-Remapped-
。<string>
Remapped Overwritten
表示標頭名稱從
變更為<string>
X-Amzn-Remapped-
並且覆寫原來的值。<string>
標頭名稱 請求 ( http
/http_proxy
/lambda
)回應 ( http
/http_proxy
/lambda
)Age
傳遞 傳遞 Accept
傳遞 已捨棄/傳遞/傳遞 Accept-Charset
傳遞 傳遞 Accept-Encoding
傳遞 傳遞 Authorization
傳遞 * 已重新對應 Connection
傳遞/傳遞/已捨棄 已重新對應 Content-Encoding
傳遞/已捨棄/傳遞 傳遞 Content-Length
傳遞 (依據內文產生) 傳遞 Content-MD5
已捨棄 已重新對應 Content-Type
傳遞 傳遞 Date
傳遞 已重新對應覆寫 Expect
已捨棄 已捨棄 Host
覆寫至整合端點 已捨棄 Max-Forwards
已捨棄 已重新對應 Pragma
傳遞 傳遞 Proxy-Authenticate
已捨棄 已捨棄 Range
傳遞 傳遞 Referer
傳遞 傳遞 Server
已捨棄 已重新對應覆寫 TE
已捨棄 已捨棄 Transfer-Encoding
已捨棄/已捨棄/例外 已捨棄 Trailer
已捨棄 已捨棄 Upgrade
已捨棄 已捨棄 User-Agent
傳遞 已重新對應 Via
已捨棄/已捨棄/傳遞 傳遞/已捨棄/已捨棄 Warn
傳遞 傳遞 WWW-Authenticate
已捨棄 已重新對應 * 如果其包含簽章版本 4 的簽章或使用
AWS_IAM
授權,則Authorization
標頭將被丟棄。 -
-
-
由API網關API生成SDK的安卓系統使用該
java.net.HttpURLConnection
類。針對將WWW-Authenticate
標頭重新對應至X-Amzn-Remapped-WWW-Authenticate
的 401 回應,在執行 Android 4.4 和之前版本的裝置上,此類別將會擲回未處理的例外狀況。 -
與API閘道生成SDKs的 Java,Android 和 iOS 不同API,由API網關API生成 JavaScript SDK的不支持重試 500 級錯誤。
-
方法測試呼叫會使用預設的
application/json
內容類型,並忽略任何其他內容類型的規格。 -
當通過傳遞
X-HTTP-Method-Override
標頭將請求發送到時,APIGateway 覆蓋該方法。API為了將標頭傳遞至後端,您需要將該標頭新增至整合請求中。 -
當請求在其
Accept
標頭中包含多個媒體類型時,APIGateway 僅遵循第一種Accept
媒體類型。如果您無法控制Accept
媒體類型的順序,並且二進制內容的媒體類型不是列表中的第一個,則可以在列表中添加第一種Accept
媒體類型API,APIGateway 將以二進制形式返回您的內容。binaryMediaTypes
例如,要使用瀏覽器中的元<img>
素發送JPEG文件,瀏覽器可能會在請求Accept:image/webp,image/*,*/*;q=0.8
中發送。通過添加image/webp
到binaryMediaTypes
列表中,端點將以二進製JPEG文件形式接收文件。 -
目前不支援自訂
413 REQUEST_TOO_LARGE
的預設閘道回應。 -
API閘道包含所有整合回應的
Content-Type
標頭。內容類型預設為application/json
。