統計資料收集器政策部署錯誤疑難排解

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

UnsupportedDatatype

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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}.

螢幕截圖範例

原因

如果統計資料收集器政策的 <Statistic> 元素中 ref 屬性指定的變數類型不受支援,則 API Proxy 的部署會失敗。

支援的資料類型為 stringintegerfloatlongdoubleboolean

舉例來說,如果在統計資料收集器政策的 <Statistic> 元素中將變數類型指定為 char,則 API Proxy 部署作業就會失敗。

診斷

  1. 在發生失敗的特定 API Proxy 中,找出 Stats Collector 政策。
  2. 找出統計資料收集器政策中使用不支援的資料類型。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,不支援的資料類型為 char

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. 確認失敗的統計資料收集器政策中使用的 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. 如果 type 屬性不是支援的資料類型,就會造成錯誤。

    在上方顯示的統計資料收集器政策範例中,請注意 type 屬性已設為 char,但系統不支援該屬性。因此,API Proxy 部署作業失敗並收到以下錯誤:

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

解析度

針對統計資料收集器政策的 <Statistic> 元素,確認參考資料屬性所指定的變數資料類型受到支援且有效。例如:

<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

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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.

螢幕截圖範例

原因

如果用來參照在統計資料收集器政策 <Statistic> 元素中定義的指定變數收集的資料,與系統定義的變數發生衝突,則 API Proxy 的部署會失敗。

一些已知的系統定義變數是 organizationenvironment

舉例來說,如果在統計資料收集器政策的 <Statistic> 元素中將名稱屬性指定為 organization,則 API Proxy 的部署作業就會失敗。

診斷

  1. 找出發生錯誤的統計收集器政策,以及與系統定義的變數衝突的 <Statistic> 元素名稱。你可以在錯誤訊息中找到這兩項資訊。舉例來說,在下列錯誤中,政策名稱為 StatCollector,與系統定義的變數衝突的 <Statistic> 元素名稱為 organization

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. 確認在失敗的統計資料收集器政策 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> 元素的定義。如果有任何 <Statistic> 元素 name 屬性與系統變數發生衝突,表示這是錯誤原因。

在上方顯示的統計收集器政策範例中,請注意使用的 <Statistic> 名稱屬性為 organization,這剛好是系統變數名稱。因此,API Proxy 部署作業失敗並收到以下錯誤:

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

解析度

確認 <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

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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}.

螢幕截圖範例

原因

如果找不到統計資料收集器政策的 <Statistic> 元素中 ref 屬性指定的變數類型,API Proxy 的部署作業就會失敗。

診斷

  1. 在發生失敗的特定 API Proxy 中,找出 Stats Collector 政策。
  2. 檢查失敗的統計資料收集器政策 XML 中每個 <Statistic> 元素的定義。如果有任何 <Statistic> 元素缺少類型屬性,就會造成錯誤。

以下是統計資料收集器政策的範例:

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

請注意,在上方顯示的 Stats Collector 政策中,兩個 <Statistic> 元素都缺少類型屬性。因此 API Proxy 的部署作業會失敗。

解析度

確認統計資料收集器政策的 <Statistic> 元素中 ref 屬性指定的變數類型屬性已指定,且其屬於支援的資料類型。

支援的資料類型為 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>