症状
Monetization の通知が機能しないため、登録ユーザーにメールが送信されません。
エラー メッセージ
Monetization に関する通知メールが登録ユーザーに送信されません。エラー メッセージは表示されません。
Monetization のイベント通知について
Monetization では、次のようなイベントを通知できます。
- 新しいプロダクト、T&C の新しいバージョン、新しい料金プランなどをデベロッパーに通知できます。
- 請求書の発行や、トランザクションのターゲット数が上限に達したことをデベロッパーに通知できます(デベロッパーが調整可能な通知料金プランを購入している場合)。
- デベロッパー関連のイベント(デベロッパーによるアカウントの作成や料金プランの登録など)を API プロバイダに通知できます。
- この他にも通知を設定できるイベントがあります。設定方法と詳細については、こちらをご覧ください。
前提条件
次の前提条件を満たしている必要があります。
- 料金プランの承諾
Monetization で次のイベントを通知する場合、デベロッパーが該当する料金プランを承諾している必要があります。
- 新しい料金プラン
- 料金プランの改定
- 料金プランの期限切れ
- 料金プランの更新
- 料金の上限超過
- 無料料金プランの終了
料金プランを承諾していないデベロッパーに、これらの通知は送信されません。
- 特定の通知に対するジョブ スケジューラーの設定
Monetization には、ジョブ スケジューラーと所定の時間に実行されるジョブが用意されています。送信する通知に対してジョブ スケジューラーを設定する必要があります。設定していないと、通知は送信されません。
- 次のドキュメントに記載されている手順に沿って、特定の通知にスケジュール ジョブが実行されているかどうか確認します。
https://docs.apigee.com/monetization/content/schedule-monetization-jobs
注: スケジュールはいつでも変更できます。
- 通知に対するスケジュール ジョブが実行されていても通知を受信できない場合は、考えられる原因に進み、この問題のトラブルシューティングを行ってください。
- 実行されていない場合は、この通知のスケジュール ジョブが実行されるまで待機します。
- 次のドキュメントに記載されている手順に沿って、特定の通知にスケジュール ジョブが実行されているかどうか確認します。
考えられる原因
このエラーには、次の原因が考えられます。
原因 | 説明 | トラブルシューティング手順の適用対象 |
---|---|---|
SMTP の構成に誤りがある | SMTP 構成が正しくありません。 | Edge for Private Cloud ユーザー |
通知ジョブが開始していません。 | Edge for Private Cloud と Public 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 サーバーとユーザーの設定を訂正します。
https://docs.apigee.com/private-cloud/latest/configuring-edge-smtp-server
- Monetization の通知が機能しているかどうか再度確認します。機能していない場合は、手順 5 に進みます。
- SMTP の設定が正しい場合は、View notifications sent 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 では、'Update Developer' 通知のステータスが 'FAILED' になっています。
- Management Server から SMTP サーバーのポートに到達できていないため、これが問題の原因となっている可能性があります。telnet コマンドを使用して、指定した SMTP サーバーのポートに接続可能かどうかを確認します。
telnet <SMTP-server-IP-address> <SMTP-Port#>
telnet の出力に [Connection timed out] または [Connection refused] というエラーが含まれている場合は、「解決策」に進みます。
解決策
- SMTP サーバーが他のマシンからの接続を許可し、外部からの通信で特定のポートを開くように、ネットワーク管理者に変更を依頼します。
- 問題が解決しない場合は、「診断情報の収集」に進みます。
原因 2: 通知ジョブのスケジュール
通知ジョブが開始していません。
診断
- 次の API 呼び出しを実行し、現在の Monetization ジョブのスケジュールを確認します。
- 機能していない通知に通知条件が存在し、有効になっているかどうか確認します。存在しない場合は、手順 3 に進み、通知条件を作成して残りの手順をスキップします。
- 存在する場合は、true に設定されているかどうか確認します。設定されていない場合は、Update a notification condition and action API を実行して、通知条件を更新します。
または
- UI で、次のドキュメントに記載されているプロセスを行い、通知条件を更新します。
https://docs.apigee.com/monetization/content/set-up-notification-templates#eventsui
- Create a notification condition and action API 呼び出しを実行して、適切な通知条件と対応するアクションを作成します。
- 通知条件が作成されたら、View all notification conditions and actions API 呼び出しを実行して、通知条件が作成されたかどうか確認します。
- あるいは、Reprocess a notification API を使用して通知を再度実行します。
- この操作を行えるのは Private Cloud のユーザーだけです。手順 1 で通知条件が存在していても通知メールがまだ届かない場合は、通知条件がトリガーされているかどうか Management Server のログ
/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 に設定されているかどうか確認します。設定されていない場合は、Update a notification condition and action API を実行して、通知条件を更新します。
解決策
- Reprocess a notification API を使用して、通知を再度実行します。
診断情報の収集
上記の手順でも問題が解決されない場合は、Apigee サポートに連絡して、次の診断情報を提供してください。
Public と Private Cloud のいずれの場合も、次の情報を提供する必要があります。
- 組織名
- 環境名
- 機能していない Monetization 通知条件
- このハンドブックで試したセクションや詳しい分析情報を提供していただけると、迅速な問題解決に役立ちます。
Private Cloud をご利用の場合は、上記の情報に加えて次の情報も提供してください。
- Management Server のログ
/opt/apigee/var/log/edge-management-server/logs/system.log