您目前查看的是 Apigee 和 Apigee Hybrid 說明文件。
查看
Apigee Edge 說明文件。
InvalidProtocol
錯誤訊息
透過 Apigee 使用者介面或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:
Error Saving Revision revision_number Invalid Protocol: invalid_protocol for Syslog handler in policy policy_name.
錯誤訊息示例
Error Saving Revision 4
Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
螢幕截圖範例

原因
如果 <Protocol> 元素中指定的通訊協定無效,部署 MessageLogging 政策時可能會發生這個錯誤。有效通訊協定為 TCP 和 UDP。透過 TLS/SSL 傳送系統記錄訊息時,僅支援 TCP。
舉例來說,如果您在 MessageLogging 政策的 <Protocol> 元素中指定 HTTP,API Proxy 的部署作業就會失敗,並顯示下列錯誤:
<Protocol>HTTP</Protocol>
診斷
找出發生錯誤的 MessageLogging 政策。您可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,政策名稱為
LogToSyslog:Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.在失敗的 MessageLogging 政策設定檢查中,確認
<Protocol>元素中指定的通訊協定是否有效。如果指定了無效的通訊協定,就是造成錯誤的原因。舉例來說,下列政策指定了無效的通訊協定。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageLogging name="LogToSyslog"> <Syslog> <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message> <Host>logs-01.loggly.com</Host> <Port>514</Port> <Protocol>HTTP</Protocol> <FormatMessage>true</FormatMessage> </Syslog> <logLevel>ALERT</logLevel> </MessageLogging>由於
<Protocol>元素中定義的通訊協定無效,API Proxy 部署作業會失敗,並顯示下列錯誤:Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
解析度
確認 MessageLogging 政策的 <Protocol> 元素中定義的通訊協定有效。<Protocol> 元素支援下列值:
- TCP
- UDP
如要修正上述範例,請在 <Protocol> 元素中定義有效的通訊協定:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
</Syslog>
<logLevel>ALERT</logLevel>
</MessageLogging>
InvalidPort
錯誤訊息
透過 Apigee 使用者介面或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:
Error Saving Revision revision_number Invalid Port: 0 for Syslog handler in policy policy_name.
錯誤訊息示例
Error Saving Revision 4
Invalid Port: 0 for Syslog handler in policy LogToSyslog.
螢幕截圖範例

原因
如果未在 <Port> 元素中指定通訊埠號碼,或通訊埠號碼無效,MessageLogging 原則的部署作業可能會因這個錯誤而失敗。通訊埠號碼必須是大於零的整數。
舉例來說,如果 <Port> 元素宣告如下,API 代理項目部署作業就會失敗:
<Port>0</Port>
診斷
找出發生錯誤的 MessageLogging 政策。這項資訊會顯示在錯誤訊息中。舉例來說,在下列錯誤中,政策名稱為
LogToSyslog:Invalid Port: 0 for Syslog handler in policy LogToSyslog.在失敗的 MessageLogging 政策中,檢查
<Port>元素是否指定有效的通訊埠號碼。如果通訊埠號碼未定義或無效,就是造成錯誤的原因。舉例來說,下列政策指定了無效的通訊埠號碼:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageLogging name="LogToSyslog"> <Syslog> <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message> <Host>logs-01.loggly.com</Host> <Port>0</Port> <Protocol>TCP</Protocol> <FormatMessage>true</FormatMessage> </Syslog> <logLevel>ALERT</logLevel> </MessageLogging>由於
<Port>元素中定義的通訊埠號碼無效,API Proxy 的部署作業會失敗,並顯示下列錯誤:Invalid Port: 0 for Syslog handler in policy LogToSyslog.
解析度
請確認 MessageLogging 政策的 <Port> 元素中已定義通訊埠編號。必須為大於零的整數。
如要修正上述範例,請在 <Protocol> 元素中定義有效的通訊埠號碼。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
</Syslog>
<logLevel>ALERT</logLevel>
</MessageLogging>