Statistics Collector ポリシーのデプロイエラーのトラブルシューティング

Apigee X のドキュメントを表示中です。
Apigee Edge のドキュメントを表示する。

UnsupportedDatatype

エラー メッセージ

Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Deploying Revision [revision_number]
StatisticsCollection [datatype]: Datatype Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is unsupported . Context [context].

エラー メッセージの例

Error Saving Revision 1
StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.

スクリーンショットの例

サポートされていないデータ型のエラー メッセージ。

原因

Statistics Collector ポリシーの <Statistic> 要素の ref 属性で指定された変数の型がサポートされていない場合、API プロキシのデプロイに失敗します。

サポートされているデータ型は stringintegerfloatlongdoubleboolean です。

たとえば、Statistics Collector ポリシーの <Statistic> 要素で変数の型が char に指定されている場合、API プロキシのデプロイに失敗します。

診断

  1. 特定の API プロキシで、エラーが発生した Statistics Collector ポリシーを確認します。
  2. Statistics Collector ポリシーで、使用されているサポートされていないデータ型を確認します。この情報はエラー メッセージから確認できます。たとえば次のエラーの場合、サポートされていないデータ型は char です。

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. エラーが発生した Statistics Collector ポリシーで使用されている type 属性がエラー メッセージで特定されたデータ型(上のステップ 2)に一致しているかどうか確認します。たとえば、次のポリシーでは、データ型が char として指定されており、これはエラー メッセージの内容と一致します。

    <StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
      <DisplayName>Statistics Collector 1</DisplayName>
      <Statistics>
          <Statistic name="statName" ref="varName" type="char">defaultStatValue</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  4. 型属性がサポートされていないデータ型の場合、これがエラーの原因です。

    上記の Statistics Collector ポリシーの例では、type 属性はサポートされていない char に設定されています。このため、API プロキシのデプロイが失敗し、次のエラーが返されます。

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    

解決策

Statistics Collector ポリシーの <Statistic> 要素の ref 属性で指定されている変数のデータ型がサポートされ、有効であることを確認します。例:

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
    <DisplayName>Statistics Collector 1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="string">defaultStatValue</Statistic>
    </Statistics>
</StatisticsCollector>

InvalidName

エラー メッセージ

Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Deploying Revision [revision_number]
StatisticsCollection: Name: [name] conflicts with system defined variables. Context policy: [policy_name]

エラー メッセージの例

Error Saving Revision 1
StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

スクリーンショットの例

無効な名前のエラー メッセージ。

原因

Statistics Collector ポリシーの <Statistic> 要素で定義された、指定された変数のデータを参照するために使用する名前がシステム定義の変数と競合する場合、API プロキシのデプロイに失敗します。

既知のシステム定義の変数としては、organizationenvironment などがあります。

たとえば、Statistics Collector ポリシーの <Statistic> 要素で name 属性に organization が指定されている場合、API プロキシのデプロイに失敗します。

診断

  1. エラーが発生した Statistics Collector ポリシーと、システム定義の変数と競合する <Statistic> 要素の名前を特定します。いずれもエラー メッセージで確認できます。たとえば、次のエラーでは、ポリシー名は StatCollector で、システム定義の変数と競合する <Statistic> 要素の名前は organization です。

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. エラーが発生した Statistics Collector ポリシーの XML で使用されている <Statistic> 要素の名前がエラー メッセージ(上のステップ 1)にある名前と一致しているかどうかを確認します。たとえば、次のポリシーでは、<Statistic> 要素に organization という名前が指定され、これがエラー メッセージの内容と一致しています。

    <StatisticsCollector name="StatCollector">
      <Statistics>
          <Statistic name="organization" ref="organization" type="string">myorg</Statistic>
          <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  3. <Statistic> 要素の定義を確認します。name 属性がシステム変数と競合している <Statistic> 要素がある場合、それがエラーの原因です。

上記の Statistics Collector ポリシーの例では、使用されている <Statistic> の name 属性は organization で、これはシステム変数名と一致します。このため、API プロキシのデプロイが失敗し、次のエラーが返されます。

StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

解決策

Statistics Collector ポリシーの <Statistic> 要素に定義されている変数のデータを参照するために使用される <Statistic> 要素の名前が、システム定義の変数と同じでないことを確認します。例:

<StatisticsCollector name="StatCollector">
    <Statistics>
        <Statistic name="org" ref="org" type="string">myorg</Statistic>
        <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
    </Statistics>
</StatisticsCollector>

DatatypeMissing

エラー メッセージ

Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Deploying Revision [revision_number]
StatisticsCollection [ref]: Datatype of Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is missing . Context [context].

エラー メッセージの例

Error Deploying Revision 2 to test
StatisticsCollection product.id: Datatype of Revision:2;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is missing. Context {2}.

スクリーンショットの例

データ型の欠落のエラー メッセージ。

原因

Statistics Collector ポリシーの <Statistic> 要素の ref 属性で指定された変数の型が見つからない場合、API プロキシのデプロイに失敗します。

診断

  1. 特定の API プロキシで、エラーが発生した Statistics Collector ポリシーを確認します。
  2. エラーが発生した Statistics Collector ポリシーの XML で <Statistic> 要素の各定義を調べます。type 属性のない <Statistic> 要素がある場合、それがエラーの原因です。

たとえば、次の Statistics Collector ポリシーで考えてみましょう。

  <StatisticsCollector name="publishPurchaseDetails"
      <Statistics>
          <Statistic name="productID" ref="product.id">999999</Statistic>
          <Statistic name="price" ref="product.price" type="string">1000</Statistic>
      </Statistics>
  </StatisticsCollector>
  

上記の Statistics Collector ポリシーの例では、両方の <Statistic> 要素にタイプ属性が欠落しています。このため、API プロキシのデプロイが失敗します。

解決策

Statistics Collector ポリシーの <Statistic> 要素の ref 属性に指定する変数には必ず、サポートされるデータ型を type 属性に指定します。

サポートされているデータ型は stringintegerfloatlongdoubleboolean です。

例:

<StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
        <Statistic name="productID" ref="product.id" type="string">999999</Statistic>
        <Statistic name="price" ref="product.price"  type="string">1000</Statistic>
    </Statistics>
</StatisticsCollector>