Autonomous AI DatabaseからOCI通知サービスへのメッセージの送信
自律型AIデータベースからOCI通知サービス・トピックにメッセージを送信する方法について説明します。
OCI通知サービスで構成するサブスクリプションによって、トピックのエンドポイントが決まります。パブリッシュされたメッセージは、トピックの各サブスクリプションに送信されます。電子メール、関数、Slackなど、サポートされるサブスクリプション・プロトコルが多数あります。詳細は、通知の概要を参照してください。
DBMS_CLOUD_NOTIFICATIONパッケージでOCI通知サービスを使用する場合、DBMS_CLOUD_NOTIFICATION.SEND_MESSAGEプロシージャのみがサポートされます(DBMS_CLOUD_NOTIFICATION.SEND_DATAプロシージャはサポートされていません)。
Autonomous AI DatabaseからのOCI通知の送信の準備
OCI通知サービスのトピックに通知を送信するには、まずOCI通知でトピックおよびサブスクリプションを作成します。
前提条件として、OCI通知を使用してメッセージを送信する前に、次を実行します:
-
OCI通知トピックを作成します。
トピックの作成の詳細は、トピックの作成を参照してください。
-
OCI通知サブスクリプションを作成します。
サブスクリプションの作成の詳細は、サブスクリプションの作成を参照してください
構成するサブスクリプションによって、トピックのエンドポイントが決まります。パブリッシュされたメッセージは、トピックの各サブスクリプションに送信されます。サポートされるサブスクリプション・プロトコルには、電子メール、関数、Slackなどが多数あります。
詳細は、通知の概要を参照してください。
-
OCI通知サブスクリプションを作成したら、サブスクリプションを確認します。
メッセージは、確認済のサブスクリプションにのみ公開できます。サブスクリプションの確認の詳細は、サブスクリプションの確認を参照してください。
OCI通知トピックへのメッセージの送信
OCI通知サービス・トピックにメッセージを送信するステップについて説明します。
-
トピックを作成してサブスクリプションを作成します。
詳細は、Autonomous AI DatabaseからOCI通知を送信するための準備を参照してください。
-
Autonomous AI DatabaseからOCI通知サービスにアクセスするための資格証明オブジェクトを作成します。
Oracle Cloud Infrastructure署名キー資格証明またはリソース・プリンシパル資格証明のいずれかを使用できます。
-
Oracle Cloud Infrastructure署名キー資格証明を作成します。たとえば:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'OCI_KEY_CRED', user_ocid => 'ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa', tenancy_ocid => 'ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a', private_key => 'MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=', fingerprint => 'f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27'); END; /詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
-
リソース・プリンシパル資格証明およびポリシーを作成します。
詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。
-
-
メッセージを送信
-
Oracle Cloud Infrastructure署名キー資格証明を使用してメッセージを送信します:
BEGIN DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE( provider => 'oci', credential_name => 'OCI_KEY_CRED', message => 'Text message', params => json_object('topic_ocid' value 'oci********pa', 'title'value 'Title for message')); END; / -
リソース・プリンシパル資格証明を使用してメッセージを送信します。
BEGIN DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE( provider => 'oci', credential_name => 'OCI$RESOURCE_PRINCIPAL', message => 'Text message', params => json_object('topic_ocid' value 'oci********pa', 'title' value 'Title for message')); END; /
ociプロバイダでは、サブスクリプションに基づいて、メッセージに対して可能なエンドポイントが異なります。titleパラメータは、サブスクリプション・プロトコルごとに異なる方法で処理されます。-
email:
titleは、メッセージの件名を指定します。 -
Slack:
title値は使用されません。含まれている場合、値は無視されます。
-
詳細は、SEND_MESSAGEプロシージャを参照してください。
OCI通知サービスを使用した通知の制限事項
DBMS_CLOUD_NOTIFICATIONを使用してメッセージを送信し、ociプロバイダ(OCI通知サービス)を使用する場合、制限があります。
次の制限があるので注意してください。
-
Message Size Limit(メッセージ・サイズ制限): リクエスト当たりのメッセージ・サイズ制限は64KBです。このサイズを超えるメッセージは、単一のリクエスト内で送信または処理できません。
-
Message Delivery Rate Limit(メッセージ配信率制限): 使用するプロトコルに応じて、異なるメッセージ配信率制限があります。
emailプロトコル: 制限はエンドポイント当たり10メッセージ/分です。
この制限は、メッセージの送信および受信速度に影響を与える可能性があります。
-
Transactions Per Minute (TPM) per-tenancy Limit (テナンシ当たりのトランザクション数制限): この操作にはトピックごとに60のTPM制限があります。この制限は、特定のトピックに対して処理または処理できる1分当たりのメッセージの最大数を表します。この制限を超えると、メッセージの処理または処理速度が遅くなる可能性があります。
-
自律型AIデータベース・インスタンス、資格証明(ユーザー資格証明を使用している場合)およびサブスクリプション・トピックはすべて同じリージョンに配置する必要があります。
OCI通知の詳細は、通知の概要を参照してください。