通知の概要
Oracle Cloud Infrastructure Notificationsサービスを使用して、トピックおよびサブスクリプションを使用するメッセージを公開するための通信チャネルを設定します。
通知サービスを使用すると、Oracle Cloud Infrastructureのリソースで何かが発生したときにそれを知ることができます。アラーム、イベント・ルールおよびコネクタを使用すると、サポートされているエンドポイント(電子メールやテキスト・メッセージ(SMS)を含む)を介して、人間が理解できるメッセージを取得できます。カスタムHTTPSエンドポイントおよびOracle Cloud Infrastructure Functionsを使用して、タスクを自動化することもできます。メッセージを直接パブリッシュすることもできます。
通知の動作
通知サービスを使用すると、トピック およびサブスクリプション を使用してメッセージを公開するための通信チャネルを設定できます。メッセージがトピックに公開されると、通知サービスはトピックのすべてのサブスクリプションにメッセージを送信します。
メッセージの配信時に、Notificationsでは次のヘッダー・メタデータが追加されます。
すべてのメッセージについて:
Content-Type
X-OCI-NS-MessageId
X-OCI-NS-TopicOcid
X-OCI-NS-TopicName
X-OCI-NS-MessageType
X-OCI-NS-UnsubscribeURL
確認メッセージの場合:
X-OCI-NS-ConfirmationURL
X-OCI-NS-SubscriptionId
メッセージ署名検証の場合:
X-OCI-NS-Signature
X-OCI-NS-Timestamp
X-OCI-NS-SignatureVersion
X-OCI-NS-SigningCertURL
サブスクライバのエンドポイントがメッセージの受信を確認しないと、通知サービスは配信を再試行します。この状況は、エンドポイントがオフラインの場合に発生することがあります。たとえば、電子メール・アドレスの電子メール・サーバーが停止している可能性があります。
通知では、次のステップに従って、(a)確認の受信、または(b)サブスクリプションの再試行期間が終了するまで、配信を再試行します。デフォルトの再試行期間は2時間です。
- 即時の再試行。
- 次のタイミングでの、サブスクリプションの再試行期間中の指数関数的バックオフ再試行:
- 1分
- 2分
- 4分
- 8分
- 16分
- 32分
- 再試行期間の終了時のメッセージの破棄。
サブスクリプションの再試行期間を変更するには、サブスクリプションの配信ポリシーの更新を参照してください。
通知の概念
通知の作業には、次の概念が必要です。
- 友好的な書式設定
- メッセージの読みやすさを向上させる設定。
- メッセージ
- トピックに公開されるコンテンツ。各メッセージは、サブスクリプション当たり少なくとも1回配信されます。電子メールとして送信されるすべてのメッセージには、関連トピックからサブスクライブ解除するためのリンクが含まれています。
- 通知
- アラームやイベント・ルールなど、メッセージを送信するための構成。各メッセージは、指定したトピックのサブスクリプションに送信されます。
- サブスクリプション
- トピックのエンドポイント。公開されたメッセージは、トピックの各サブスクリプションに送信されます。
- トピック
- サブスクリプションにメッセージを送信するための通信チャネル。各トピック名はテナンシ間で一意です。
Oracle Cloud Infrastructure Notificationsサービスによって電子メールとして送信されるメッセージは、処理され、U.S.ベースのリージョンのOracleリソースを介して配信されます。
メッセージ公開および配信のフロー
リソースは、構成されたトピックにメッセージを公開します。その後、通知によって、トピック内のアクティブなサブスクリプションにメッセージが配信されます。
メッセージを送信できるリソースには、アラーム、お知らせサブスクリプション、イベント・ルール、コネクタおよびコンテキスト通知(アラームおよびイベント・ルール)が含まれます。(ユーザー、サービスまたはアプリケーションは、直接公開を介してメッセージを送信することもできます。)
たとえば、トピックにメッセージを送信するように構成されたアラームを考えてみます。このトピックでは、電子メール、SlackおよびSMSサブスクリプションについて説明します。アラーム・トリガー・ルールに違反すると、アラームによってトピックにメッセージがパブリッシュされます。通知により、トピックのアクティブなサブスクリプションにメッセージが配信されます。この例では、Slackサブスクリプションはまだ確認されていないため、保留中です。通知は、トピックで唯一のアクティブなサブスクリプションであるため、電子メールおよびSMSサブスクリプションにのみメッセージを配信します。
公開済および配信済メッセージを追跡するメトリックについては、使用可能なメトリック: oci_notificationを参照してください。
アラーム
アラームのトリガー・ルールに違反すると、アラームはアラーム・メッセージを構成済のトピックに送信します。通知は、そのトピックのアクティブなサブスクリプションにメッセージを配信します。アラームの管理を参照してください。
コンテキスト通知には、アラームを含めることができます。
お知らせサブスクリプション
お知らせサブスクリプションは、コンソールのお知らせメッセージを構成済のトピックに送信します。通知は、そのトピックのアクティブなサブスクリプションにメッセージを配信します。
イベント・ルール
トリガーされると、イベント・ルールはイベント・メッセージを構成済のトピックに送信します。通知は、そのトピックのアクティブなサブスクリプションにメッセージを配信します。イベントのルールの管理を参照してください。
コンテキスト通知には、イベント・ルールを含めることができます。
コネクタ
コネクタは、コネクタ・メッセージを構成済のトピックに送信します。通知は、そのトピックのアクティブなサブスクリプションにメッセージを配信します。コネクタの管理を参照してください。
直接公開
ユーザー(またはサービスまたはアプリケーション)は、メッセージを構成済のトピックに送信します。通知は、そのトピックのアクティブなサブスクリプションにメッセージを配信します。「トピックへのメッセージの公開」を参照してください。
ファンクションとイベントを使用した自動化の作成
メッセージをファンクション・サブスクリプションを含むトピックに公開することで、自動化を作成できます。ファンクション・サブスクリプションの例については、シナリオA: 仮想マシンの自動サイズ変更を参照してください。
イベント・タイプ、ルールおよびアクションを使用して、トピックおよびサブスクリプション(通知リソース)の状態変更に基づく自動化を作成することもできます。
可用性
通知サービスは、すべてのOracle Cloud Infrastructure商用リージョンで使用できます。使用可能なリージョンのリストと、関連する場所、リージョン識別子、リージョン・キーおよび可用性ドメインは、リージョンおよび可用性ドメインについてを参照してください。
電子メール・メッセージ送信のサービス比較
通知サービスまたは電子メール配信サービスを使用して電子メール・メッセージを送信するかどうかを決定する際には、次のサービス機能を使用することを検討してください。電子メール配信の詳細は、電子メール配信サービスの概要を参照してください。
サービス機能 | 通知サービス | 電子メール配信サービス |
---|---|---|
電子メールを送信する前に確認が必要。 | はい | いいえ |
署名などの電子メール装飾を許可。 | はい | いいえ |
RAW電子メール・メッセージを許可。 | いいえ | はい |
MIMEアタッチメントをサポート。 | いいえ |
はい |
失敗した電子メール配信の特別な処理をサポート。 | いいえ |
はい |
小さいメッセージ(32KB未満、64KBの制限付き)の場合に課金。 | はい | いいえ |
大きいメッセージ(32KBを超える、2MBの制限付き)の場合に課金。 | いいえ | はい |
リソース識別子
ほとんどのタイプのOracle Cloud Infrastructureリソースには、Oracle Cloud ID (OCID)と呼ばれるOracleによって割り当てられた一意の識別子があります。OCIDのフォーマットおよびリソースを識別するその他の方法の詳細は、リソース識別子を参照してください。
通知へのアクセス方法
コンソールまたは通知REST APIを使用して、Notificationsサービスにアクセスできます。コンソール、CLIおよびAPIに関する手順は、このガイド全体に記載されています。使用可能なSDKのリストは、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。
コンソール:コンソールを使用して通知にアクセスするには、サポートされているブラウザを使用する必要があります。コンソールのサインイン・ページに移動するには、このページの上部にあるナビゲーション・メニューを開き、「Infrastructureコンソール」をクリックします。クラウド・テナント、ユーザー名およびパスワードの入力を求められます。ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
API: APIを介して通知にアクセスするには、通知APIを使用します。
CLI: 通知のコマンドライン・リファレンスを参照してください。
認証と認可
Oracle Cloud Infrastructureの各サービスは、すべてのインタフェース(コンソール、SDKまたはCLI、およびREST API)の認証および認可のためにIAMと統合されています。
組織の管理者は、どのユーザーがどのサービスとリソースにアクセスできるか、およびアクセスのタイプを制御する、グループ、コンパートメントおよびポリシーを設定する必要があります。たとえば、ポリシーは、新規ユーザーの作成、クラウド・ネットワークの作成と管理、インスタンスの起動、バケットの作成、オブジェクトのダウンロードなどを実行できるユーザーを制御します。詳細は、ポリシーの開始を参照してください。異なる各サービスに対するポリシーの記述の詳細は、ポリシー・リファレンスを参照してください。
会社が所有するOracle Cloud Infrastructureリソースを使用する必要がある通常のユーザー(管理者ではない)の場合は、ユーザーIDを設定するよう管理者に連絡してください。管理者は、使用する必要があるコンパートメントを確認できます。
管理者: 通知リソースへのアクセス権をグループに付与する一般的なポリシーについては、「IAMポリシー」(「通知の保護」ページ)を参照してください。
通知における制限
適用可能な制限のリストと制限の引上げをリクエストする手順は、サービス制限を参照してください。リソースまたはリソース・ファミリにコンパートメント固有の制限を設定するために、管理者は、コンパートメント割当てを使用できます。
メッセージの公開の制限(PublishMessage操作)
制限はすべてテナンシ単位です。
制限タイプ | 制限量 |
---|---|
リクエスト当たりのメッセージ・サイズ | 64KB |
HTTPベース・プロトコルのエンドポイント当たりのメッセージ配信率("http:"または"https:"で始まるエンドポイント) | 60メッセージ/分 |
電子メール・プロトコルのエンドポイント当たりのメッセージ配信率 | 10メッセージ/分 |
1分当たりのメッセージ(1分当たりのトランザクション(TPM)とも呼ばれる) | 60/トピック |
セキュリティ
通知のセキュリティについて学習します。
トピックおよびサブスクリプションへのアクセス権を付与します。「通知の保護」を参照してください。