現在、Apigee と Apigee ハイブリッドのドキュメントを表示しています。
Apigee Edge のドキュメントを表示する
InvalidProtocol
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
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 経由で Syslog メッセージを送信する場合は、TCP のみがサポートされます。
たとえば、次のように MessageLogging ポリシーの <Protocol>
要素に HTTP を指定すると、API プロキシのデプロイがこのエラーにより失敗します。
<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 プロキシのデプロイは次のエラーで失敗します。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 UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
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 ポリシーのデプロイがこのエラーで失敗する場合があります。ポート番号は 0 より大きい整数である必要があります。
たとえば、<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 プロキシのデプロイは次のエラーで失敗します。Invalid Port: 0 for Syslog handler in policy LogToSyslog.
解決策
MessageLogging ポリシーの <Port>
要素内にポート番号を定義します。0 より大きい整数を指定する必要があります。
上記の例を修正するには、<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>