您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
問題
營利通知無法正常運作,因此系統不會傳送電子郵件給訂閱者。
錯誤訊息
系統不會向訂閱者傳送營利通知電子郵件。不會出現任何錯誤訊息。
關於營利事件通知
營利功能支援事件通知,可讓您:
- 將新產品、新版條款及細則或新費率方案等活動通知所有開發人員。
- 在帳單文件發布或達到目標交易次數百分比時 (如果開發人員購買了可調整通知費率方案),通知特定開發人員。
- 通知 API 供應商開發人員相關事件,例如開發人員註冊帳戶或申請費率方案時。
- 如要進一步瞭解通知類型和設定方式,請參閱這篇文章。
必要條件
請務必符合下列必要條件:
- 接受費率方案
如要查看下列營利通知,請確認開發人員是否已接受相應的費率方案:
- 新增費率方案
- 修訂後的費率方案
- 過期的費率方案
- 續訂房價方案
- 超出頻率限制
- 免費房價方案已用盡
如果開發人員尚未接受費率方案,系統就不會針對該開發人員觸發這些通知。
- 應為特定通知執行 Job Scheduler
營利功能提供工作排程器和一組預先排定的工作,會在預先指定的時間執行。必須為特定通知執行工作排程器。如果未執行,就不會觸發通知。
可能原因
可能原因包括:
| 原因 | 說明 | 適用於以下裝置的疑難排解說明: |
|---|---|---|
| SMTP 設定錯誤 | 提供的 SMTP 設定有誤。 | Edge Private Cloud 使用者 |
| 通知工作尚未開始。 | Edge Public Cloud 和 Private Cloud 使用者 |
原因 1:SMTP 設定有誤
診斷
- 檢查
/opt/apigee/edge-mint-management-server/conf/apix-mint.properties檔案,確認下列 SMTP 屬性設定正確無誤。mint.notification.javaMail.properties={"mail.smtp.host": "smtp.gmail.com", "mail.smtp.port": "465", "mail.smtp.starttls.enable": "true", "mail.smtp.auth": "true", "mail.smtp.username": "blah@gmail.com", "mail.smtp.password": "blah" }
- 確認 SMTP 伺服器和使用者設定是否正確。如果這些設定有誤或未設定,請繼續進行步驟 3。如果正確無誤,請繼續進行步驟 4。
- 請按照下列文件中的說明,正確更新 SMTP 伺服器和使用者設定:
- 再次檢查營利通知是否正常運作。如果沒有,請繼續進行步驟 5。
- 如果 SMTP 設定正確,請執行「查看傳送的通知」API 呼叫,查看傳送通知的狀態。
- 這項 API 會傳回 JSON,其中包含所有已觸發的通知,以及每個通知的狀態。
- 以下是 JSON 範例:
{ "hasMoreItems" : false, "notifications" : [ { "fromAlias" : "No Reply", "fromEmail" : "****@apigee.com", "id" : "4e2d0d9a-69a4-4430-957d-02fa2a3cb581", "notificationType" : "EMAIL", "orgId" : "myorg", "rawMessage" : "...", "retryCount" : 0, "retryStatuses" : [ { "responseCode" : 0, "responseMessage" : "{\"Headers\":null,\"Content : \":null,\"StatusCode\":\"0\"}", "retriedAt" : 1518605291092, "retryAttempt" : 0 } ], "source" : "MailTo: [****@blah.com], Org: [myorg], EventType: [UPDATE_DEVELOPER]", "status" : "FAILED", "subject" : "Notification of developer changing company details", "templateId" : "814315c8-d8ca-4b3e-90bb-a8366600e625", "templateName" : "DEFAULT_UPDATE_DEVELOPER_TEMPLATE", "templateParametersJSON" : "{\"developer.legalName\":\"\",\"developer.name\":\"John Smith\"}", "toAlias" : "***@blah.com", "toEmail" : "***@blah.com", "unsubscribeURL" : "..." }
如果您檢查 JSON,會發現上述特定通知「更新開發人員」的狀態為「FAILED」。
- 這可能是因為管理伺服器無法連線至 SMTP 伺服器和通訊埠。使用 telnet 指令檢查是否能透過指定通訊埠連線至指定 SMTP 伺服器。
telnet <SMTP-server-IP-address> <SMTP-Port#>
如果 Telnet 輸出內容顯示「連線逾時」或「連線遭拒」錯誤,請繼續進行「解決方法」步驟。
解析度
- 請與網路管理員合作,確保 SMTP 伺服器可接受來自其他機器的連線,且特定通訊埠對外部世界開放。
- 如果問題仍未解決,請使用
原因 2:通知工作排程
通知工作尚未開始。
診斷
- 執行下列 API 呼叫,查看目前排定的所有營利工作。
- 檢查通知條件是否存在,且是否已啟用無法正常運作的通知。如果沒有,請前往步驟 3 建立通知條件,並略過其餘步驟。
- 如果有的話,請檢查是否已啟用為 true。如果不是,請執行「更新通知條件和動作 API」,更新通知條件。
或
- 請使用 UI,按照下方文件提供的程序更新通知條件:
- 執行「建立通知條件和動作 API」呼叫,建立適當的通知條件和相應動作。
- 建立通知條件後,請執行「列出通知條件和動作」API 呼叫,確認通知條件是否已建立。
- 你也可以使用「重新處理通知」API 重新處理通知。
- 這個步驟僅適用於私有雲使用者。如果步驟 1 中有通知條件,但您仍未收到通知電子郵件,請檢查管理伺服器記錄
/opt/apigee/var/log/edge-management-server/logs/system.log,確認通知條件是否已觸發。grep "Executing Mint Scheduler" /opt/apigee/var/log/edge-management-server/logs/system.log | grep -o "Executing Mint Scheduler : \[.*\]" | grep -v "for org : \[null\]" |sort | uniq -c
- 如果觸發通知條件,但您仍未收到通知,請繼續進行「必須收集診斷資訊」,並擷取上述步驟的資訊和輸出內容。
- 如果有的話,請檢查是否已啟用為 true。如果不是,請執行「更新通知條件和動作 API」,更新通知條件。
解決方法
- 使用 Reprocess a notification API 重新處理通知
必須收集診斷資訊
如果按照上述指示操作後問題仍未解決,請與 Apigee Edge 支援團隊聯絡,並提供下列診斷資訊。
公有雲和私有雲使用者應提供下列資訊:
- 機構名稱
- 環境名稱
- 無法正常運作的營利通知條件
- 詳細說明您已嘗試過 Playbook 中的哪些章節,以及任何其他有助於我們加快解決這個問題的洞察資訊。
除了上述資訊之外,Private Cloud 使用者也應提供下列資訊:
- 管理伺服器記錄
/opt/apigee/var/log/edge-management-server/logs/system.log