DBMS_CLOUD_NOTIFICATION-Package
Mit dem Package DBMS_CLOUD_NOTIFICATION können Sie Nachrichten oder die Ausgabe einer SQL-Abfrage an einen Provider senden.
Die unterstützten Provider mit DBMS_CLOUD_NOTIFICATION sind: E-Mail, Microsoft Teams, OCI Notifications (ONS) und Slack.
Wenn Sie den OCI Notifications-Service mit dem Package DBMS_CLOUD_NOTIFICATION verwenden, wird nur die Prozedur DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE unterstützt (die Prozedur DBMS_CLOUD_NOTIFICATION.SEND_DATA wird nicht unterstützt).
Voraussetzungen
- Sie können ein NAT-Gateway im virtuellen Cloud-Netzwerk (VCN) erstellen, in das sich Ihre autonomen KI-Datenbankressourcen befinden, indem Sie die Anweisungen in der Dokumentation zu Oracle Cloud Infrastructure unter NAT-Gateway erstellen befolgen.
- Fügen Sie nach dem Erstellen des NAT-Gateways eine Routingregel und eine Egress-Sicherheitsregel zu jedem Subnetz (im VCN) hinzu, in dem sich autonome KI-Datenbankressourcen befinden. Damit können diese Ressourcen über das Gateway einen öffentlichen Schlüssel von Ihrer Azure AD-Instanz abrufen:
- Gehen Sie zur Seite Subnetzdetails für das Subnetz.
- Klicken Sie auf der Registerkarte Informationen zum Subnetz auf den Namen der Routentabelle des Subnetzes, um die Seite Routentabellendetails anzuzeigen.
- Prüfen Sie in der Tabelle der vorhandenen Routingregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
- Zielort: 0.0.0.0/0
- Zieltyp: NAT-Gateway
- Ziel: Der Name des NAT-Gateway, das Sie gerade im VCN erstellt haben
Wenn keine solche Regel vorhanden ist, klicken Sie auf Routenregeln hinzufügen, und fügen Sie eine Routingregel mit diesen Eigenschaften hinzu.
- Zurück zur Seite Subnetzdetails für das Subnetz.
- Klicken Sie in der Tabelle Sicherheitslisten des Subnetzes auf den Namen der Sicherheitsliste des Subnetzes, um die Seite Sicherheitslistendetails anzuzeigen.
- Klicken Sie im Seitenmenü unter Ressourcen auf Egress-Regeln.
- Prüfen Sie in der Tabelle der vorhandenen Ausgangsregeln, ob bereits eine Regel mit den folgenden Eigenschaften vorhanden ist:
- Zieltyp: CIDR
- Zielort: 0.0.0.0/0
- IP-Protokoll: TCP
- Quellportbereich: 443
- Ziel-Portbereich: Alle
Wenn keine derartige Regel vorhanden ist, klicken Sie auf Egress-Regeln hinzufügen, und fügen Sie eine Egress-Regel mit diesen Eigenschaften hinzu.
Die HTTP-Proxyeinstellungen in Ihrer Umgebung müssen es der Datenbank ermöglichen, auf den Cloud-Serviceprovider zuzugreifen.
Hinweis:
Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis sich die Exadata-Infrastruktur im Status Aktivierung erforderlich befindet. Sobald sie aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.Für die Einrichtung eines HTTP-Proxys für eine bereits bereitgestellte Exadata-Infrastruktur ist eine Serviceanfrage (SR) in My Oracle Support erforderlich. Weitere Informationen finden Sie unter Serviceanfrage in My Oracle Support erstellen.
Zusammenfassung der DBMS_CLOUD_NOTIFICATION-Unterprogramme
In dieser Tabelle werden die im Package enthaltenen Unterprogramme zusammengefasst.
| Unterprogramm | Beschreibung |
|---|---|
|
Ausgabe der SQL-Abfrage an einen Provider senden |
|
|
Textnachricht an einen klinischen Mitarbeiter senden. |
Prozedur SEND_DATA
Die Prozedur SEND_DATA sendet die Ergebnisse der angegebenen Abfrage an einen Provider.
Syntax
DBMS_CLOUD_NOTIFICATION.SEND_DATA(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
query IN CLOB,
params IN CLOB
);
Parameter
| Parameter | Beschreibung |
|---|---|
|
|
Gibt den Provider an. Gültige Werte sind: " Dieser Parameter ist erforderlich. |
|
|
Name des Zugangsdatenobjekts für den Zugriff auf den Provider. Für den E-Mail-Provider sind die Zugangsdaten der Name der Zugangsdaten des SMTP-genehmigten Absenders, der seinen Benutzernamen und sein Kennwort enthält. Für den msteams-Provider ist der Berechtigungsnachweis der Name des Berechtigungsnachweises. Für den Slack-Provider muss der Benutzername der Zugangsdaten Dieser Parameter ist erforderlich. |
|
|
Gibt die auszuführende SQL-Abfrage an. Ergebnisse werden an den klinischen Mitarbeiter gesendet. Dieser Parameter ist erforderlich. |
|
|
Gibt bestimmte Parameter für Für den Providertyp
Für den Providertyp
Für den Providertyp
Dieser Parameter ist erforderlich. |
Verwendungshinweise
Verwenden Sie die Prozedur DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username, password), um das Zugangsdatenobjekt zu erstellen. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.
- Für den
email-Provider benötigt der Benutzer einen SMTP-Verbindungsendpunkt für den Email Delivery-Server, umsmtp_hostabzurufen. Der Benutzer benötigt außerdem einen SMTP-genehmigten Absender und seine Zugangsdaten, um sich beim Email Delivery-Server zu authentifizieren und diecredential_nameabzurufen. SMTP-Verbindung muss konfiguriert sein, und SMTP-Zugangsdaten müssen generiert und genehmigt werden. - Für den
msteams-Provider erfordert der Benutzer die Microsoft Teams-App und einen darin konfigurierten Bot. Die App muss in der Organisation veröffentlicht und installiert werden, nachdem die Genehmigung vom Admin-Center eingeholt wurde. Der Benutzer benötigt auch Zugriff auf die BerechtigungenFiles.ReadWrite.AllundChannelSettings.Read.Allfür die Diagramm-API über sein Azure-Portal. Um das erforderliche Token zu generieren, benötigt der Benutzerbot_idim Benutzernamen undbot_secretim Kennwort. Die maximale Dateigröße, die bei der Verwendung vonDBMS_CLOUD_NOTIFICATION.SEND_DATAfür Microsoft Teams unterstützt wird, beträgt 4 MB. - Für den
slack-Provider kann der Wertusernameeine beliebige gültige Zeichenfolge sein, undpasswordist das Slack-Bottoken.
Beispiel
SQL-Ausgabe mit dem email-Provider senden:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'EMAIL_CRED',
username => 'username',
password => 'password');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_DATA(
provider => 'email',
credential_name => 'EMAIL_CRED',
query => 'SELECT tablespace_name FROM dba_tablespaces',
params => json_object('recipient' value 'mark@oracle.com, suresh@oracle.com',
'to_cc' value 'nicole@oracle.com1, jordan@oracle.com',
'to_bcc' value 'manisha@oracle.com',
'subject' value 'Test subject',
'type' value 'json',
'title' value 'mytitle',
'message' value 'This is the message',
'smtp_host' value 'smtp.email.example.com',
'sender' value 'approver_sender@oracle.com' )
);
END;
/SQL-Ausgabe mit dem msteams-Provider senden:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(credential_name => 'TEAMS_CRED',
username => 'bot_id',
password => 'bot_secret');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(provider => 'msteams',
credential_name => 'TEAMS_CRED',
query => 'SELECT tablespace_name FROM dba_tablespaces',
params => json_object('tenant'value '5b743bc******c0286',
'team'value '0ae401*********5d2bd',
'channel'value '19%3a94be023*****%40thread.tacv2',
'title'value 'today',
'type'value 'csv'));
END;
/
SQL-Ausgabe mit dem slack-Provider senden:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'SLACK_CRED',
username => 'SLACK_TOKEN',
password => 'password');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_DATA(
provider => 'slack',
credential_name => 'SLACK_CRED',
query => 'SELECT username, account_status, expiry_date FROM USER_USERS WHERE rownum < 5',
params => json_object('channel' value 'C0....08','type' value 'csv'));
END;
/
Prozedur SEND_MESSAGE
Das Verfahren sendet eine Textnachricht an einen klinischen Mitarbeiter.
Syntax
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
message IN CLOB,
params IN CLOB
);
Parameter
| Parameter | Beschreibung |
|---|---|
|
|
Gibt den Provider an. Gültige Werte sind: ' Dieser Parameter ist erforderlich. |
|
|
Name des Zugangsdatenobjekts für den Zugriff auf den Provider. Für den E-Mail-Provider sind die Zugangsdaten der Name der Zugangsdaten des SMTP-genehmigten Absenders, der seinen Benutzernamen und sein Kennwort enthält. Für den msteams-Provider müssen die Zugangsdaten den Schlüssel Für den Slack-Provider muss der Benutzername der Zugangsdaten Für den Dieser Parameter ist erforderlich. |
|
|
Gibt den Meldungstext an. Dieser Parameter ist erforderlich. |
|
|
Gibt bestimmte Parameter für Für den Providertyp
email sind folgende Parameter gültig:
Für den Providertyp
msteams ist der gültige Parameter:
Für den Providertyp
slack ist der gültige Parameter:
Für den Provider OCI Notifications mit dem Typ
oci sind folgende Parameter gültig:
Beim
oci-Provider gibt es verschiedene mögliche Endpunkte für eine Nachricht, basierend auf den Abonnements. Der Parameter title wird für verschiedene Abonnements unterschiedlich behandelt:
Die Kanal-ID ist eine eindeutige ID für einen Kanal und unterscheidet sich vom Kanalnamen. Wenn Sie in Slack Kanaldetails anzeigen, finden Sie die Kanal-ID auf der Registerkarte "Info". Dieser Parameter ist erforderlich. |
Verwendungshinweise
Verwenden Sie die Prozedur DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username, password), um das Zugangsdatenobjekt zu erstellen. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.
- Für den
email-Provider benötigt der Benutzer einen SMTP-Verbindungsendpunkt für den Email Delivery-Server, umsmtp_hostabzurufen. Der Benutzer benötigt außerdem einen SMTP-genehmigten Absender und seine Zugangsdaten, um sich beim Email Delivery-Server zu authentifizieren und diecredential_nameabzurufen. SMTP-Verbindung muss konfiguriert sein, und SMTP-Zugangsdaten müssen generiert und genehmigt werden. - Für den
msteams-Provider erfordert der Benutzer die Microsoft Teams-App und einen darin konfigurierten Bot. Die App muss in der Organisation veröffentlicht und installiert werden, nachdem die Genehmigung vom Admin-Center eingeholt wurde. Der Benutzer benötigt auch Zugriff auf die BerechtigungenFiles.ReadWrite.AllundChannelSettings.Read.Allfür die Diagramm-API über sein Azure-Portal. Um das erforderliche Token zu generieren, benötigt der Benutzerbot_idim Benutzernamen undbot_secretim Kennwort. - Für den
slack-Provider kann der Wertusernameeine beliebige gültige Zeichenfolge sein, undpasswordist das Slack-Bottoken. -
Die
DBMS_CLOUD_NOTIFICATIONunterstützt den OCI-Benachrichtigungsprovider. Einzelheiten zum OCI-Benachrichtigungsprovider finden Sie unter Überblick über Notifications.- Um den OCI Notifications-Provider zu verwenden, müssen Sie Folgendes tun:
- Thema erstellen. Weitere Informationen zum Erstellen von Themen finden Sie unter Themen erstellen.
- Erstellen Sie die erforderlichen Abonnements. Weitere Informationen zum Erstellen eines Abonnements finden Sie unter Abonnement erstellen.
- Nachdem Sie die Abonnements erstellt haben, bestätigen Sie die Abonnements. Nachrichten werden nur für bestätigte Abonnements veröffentlicht. Einzelheiten zur Bestätigung von Abonnements finden Sie unter Abonnement bestätigen.
- Die Autonomous AI Database-Instanz, die Zugangsdaten (wenn Sie Benutzerzugangsdaten verwenden) und das Abonnementthema müssen sich alle in derselben Region befinden.
- Dabei gelten die folgenden Einschränkungen.
- Grenzwert für Nachrichtengröße: Die maximale Nachrichtengröße pro Anforderung beträgt 64 KB. Nachrichten, die diese Größe überschreiten, können nicht innerhalb einer einzigen Anforderung gesendet oder verarbeitet werden.
- Ratenlimit für die Nachrichtenzustellung: Je nach verwendetem Protokoll gibt es unterschiedliche Ratenlimits für die Nachrichtenzustellung.
email-Protokoll: Das Limit beträgt 10 Nachrichten pro Minute pro Endpunkt.
Diese Einschränkung kann sich auf die Geschwindigkeit auswirken, mit der Nachrichten übertragen und empfangen werden können.
- Transaktionslimit pro Minute (TPM) pro Mandant: Für diesen Vorgang gibt es ein TPM-Limit von 60 pro Thema. Dieses Limit gibt die maximale Anzahl von Nachrichten pro Minute an, die für ein bestimmtes Thema verarbeitet oder verarbeitet werden können. Eine Überschreitung dieses Limits kann dazu führen, dass Nachrichten nicht langsamer verarbeitet oder verarbeitet werden.
- Um den OCI Notifications-Provider zu verwenden, müssen Sie Folgendes tun:
Beispiele
Senden Sie eine Textnachricht mit dem email-Provider:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'EMAIL_CRED',
username => 'username',
password => 'password');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider => 'email',
credential_name => 'EMAIL_CRED',
message => 'Subject content',
params => json_object('recipient' value 'mark@oracle.com, suresh@oracle.com',
'to_cc' value 'nicole@oracle.com, jordan@oracle.com',
'to_bcc' value 'manisha@oracle.com',
'subject' value 'Test subject',
'smtp_host' value 'smtp.email.example.com',
'sender' value 'approver_sender@oracle.com' )
);
END;
/Textnachricht mit dem msteams-Provider senden:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(credential_name => 'TEAMS_CRED',
username => 'bot_id',
password => 'bot_secret');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider => 'msteams',
credential_name => 'TEAMS_CRED',
message => 'text from new teams api',
params => json_object('channel'value 'C0....08'),'region'value 'india');
END;
/
Textnachricht mit dem slack-Provider senden:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'SLACK_CRED',
username => 'SLACK_TOKEN',
password => 'password');
END;
/
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider => 'slack',
credential_name => 'SLACK_CRED',
message => 'Send text from Autonomous AI Database.',
params => json_object('channel' value 'C0....08'));
END;
/
Senden Sie eine Textnachricht mit OCI Notifications, und geben Sie den oci-Provider ein:
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider => 'oci',
credential_name => 'OCI_CRED',
message => 'Text message for you.',
params => json_object('topic_ocid' value 'oci********pa',
'title' value 'Title for message subject' ));
END;
/