Ensemble DBMS_CLOUD_NOTIFICATION
L'ensemble DBMS_CLOUD_NOTIFICATION vous permet d'envoyer des messages ou la sortie d'une interrogation SQL à un fournisseur.
Les fournisseurs pris en charge avec DBMS_CLOUD_NOTIFICATION sont : Courriel, Microsoft Teams, OCI Notifications (ONS) et Slack.
Lorsque vous utilisez le service d'avis OCI avec l'ensemble DBMS_CLOUD_NOTIFICATION, seule la procédure DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE est prise en charge (la procédure DBMS_CLOUD_NOTIFICATION.SEND_DATA n'est pas prise en charge).
Conditions requises
- Créez une passerelle NAT dans le réseau en nuage virtuel (VCN) où résident vos ressources de base de données d'intelligence artificielle autonome en suivant les instructions sous Créer une passerelle NAT dans la documentation sur Oracle Cloud Infrastructure.
- Après avoir créé la passerelle NAT, ajoutez une règle de routage et une règle de sécurité sortante à chaque sous-réseau (dans le VCN) où résident les ressources du service Base de données d'intelligence artificielle autonome afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique de votre instance Azure AD :
- Allez à la page Détails du sous-réseau correspondante.
- Dans l'onglet Informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher la page Détails de la table de routage.
- Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
- Destination : 0.0.0.0/0
- Type de cible : Passerelle NAT
- Target : Nom de la passerelle NAT que vous venez de créer dans le VCN
Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle de routage avec ces caractéristiques.
- Retournez à la page Détails du sous-réseau.
- Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher la page Détails de la liste de sécurité.
- Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.
- Dans la table des règles de trafic sortant existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
- Type de destination : CIDR
- Destination : 0.0.0.0/0
- Protocole IP : TCP
- Intervalle de ports sources : 443
- Intervalle de ports de destination : Tout
Si une telle règle n'existe pas, cliquez sur Ajouter des règles de trafic sortant et ajoutez une règle de trafic sortant avec ces caractéristiques.
Les paramètres de mandataire HTTP de votre environnement doivent permettre à la base de données d'accéder au fournisseur de services en nuage.
Note :
La configuration réseau, y compris le mandataire HTTP, ne peut être modifiée que jusqu'à ce que l'infrastructure Exadata ait l'état Activation requise. Une fois activé, vous ne pouvez pas modifier ces paramètres.La configuration d'un mandataire HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service dans My Oracle Support. Pour plus de détails, voir Créer une demande de service dans My Oracle Support.
Sommaire des sous-programmes DBMS_CLOUD_NOTIFICATION
Ce tableau résume les sous-programmes inclus dans le package.
| Sous-programme | Description |
|---|---|
|
Envoyer la sortie d'interrogation SQL à un fournisseur. |
|
|
Envoyer un message texte à un fournisseur. |
Procédure SEND_DATA
La procédure SEND_DATA envoie les résultats de l'interrogation spécifiée à un fournisseur.
Syntaxe
DBMS_CLOUD_NOTIFICATION.SEND_DATA(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
query IN CLOB,
params IN CLOB
);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Spécifie le fournisseur. Les valeurs valides sont les suivantes : ' Ce paramètre est obligatoire. |
|
|
Nom de l'objet de données d'identification permettant d'accéder au fournisseur. Pour le fournisseur de courriel, les données d'identification sont le nom des données d'identification de l'expéditeur approuvé SMTP qui contient son nom d'utilisateur et son mot de passe. Pour le fournisseur msteams, les données d'identification sont le nom des données d'identification. Pour le fournisseur Slack, le nom d'utilisateur des données d'identification doit être Ce paramètre est obligatoire. |
|
|
Indique l'interrogation SQL à exécuter. Les résultats sont envoyés au fournisseur. Ce paramètre est obligatoire. |
|
|
Spécifie des paramètres spécifiques pour Pour le type de fournisseur
Pour le type de fournisseur
Pour le type de fournisseur
Ce paramètre est obligatoire. |
Notes d'utilisation
Utilisez la procédure DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username, password) pour créer l'objet de données d'identification. Pour plus d'informations, voir Procédure CREATE_CREDENTIAL.
- Pour le fournisseur
email, l'utilisateur nécessite un point d'extrémité de connexion SMTP pour que le serveur de transmission de messages obtiennesmtp_host. L'utilisateur a également besoin d'un expéditeur approuvé SMTP et de ses données d'identification pour s'authentifier auprès du serveur de transmission de messages afin d'obtenircredential_name. La connexion SMTP doit être configurée et les données d'identification SMTP doivent être générées et approuvées. - Pour le fournisseur
msteams, l'utilisateur nécessite l'application Microsoft Teams et un robot configuré dans celle-ci. L'application doit être publiée dans l'organisation et installée après avoir obtenu l'approbation de l'administrateur du centre d'administration. L'utilisateur doit également avoir accès aux autorisationsFiles.ReadWrite.AlletChannelSettings.Read.Allpour l'API Graph à partir de son portail Azure. Pour générer le jeton requis, l'utilisateur requiertbot_iddans le nom d'utilisateur etbot_secretdans le mot de passe. La taille de fichier maximale prise en charge lors de l'utilisation deDBMS_CLOUD_NOTIFICATION.SEND_DATApour Microsoft Teams est de 4 Mo. - Pour le fournisseur
slack, la valeurusernamepeut être toute chaîne valide etpasswordest le jeton de robot Slack.
Exemple
Envoyer une sortie SQL avec le fournisseur email :
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;
/Envoyer une sortie SQL avec le fournisseur msteams :
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;
/
Envoyer une sortie SQL avec le fournisseur slack :
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;
/
Procédure SEND_MESSAGE
La procédure envoie un message texte à un fournisseur.
Syntaxe
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider IN VARCHAR2,
credential_name IN VARCHAR2,
message IN CLOB,
params IN CLOB
);
Paramètres
| Paramètre | Description |
|---|---|
|
|
Spécifie le fournisseur. Les valeurs valides sont les suivantes : ' Ce paramètre est obligatoire. |
|
|
Nom de l'objet de données d'identification permettant d'accéder au fournisseur. Pour le fournisseur de courriel, les données d'identification sont le nom des données d'identification de l'expéditeur approuvé SMTP qui contient son nom d'utilisateur et son mot de passe. Pour le fournisseur msteams, les données d'identification doivent contenir la clé Pour le fournisseur Slack, le nom d'utilisateur des données d'identification doit être Pour le fournisseur Ce paramètre est obligatoire. |
|
|
Indique le texte du message. Ce paramètre est obligatoire. |
|
|
Spécifie des paramètres spécifiques pour Pour le type de fournisseur
email, les paramètres valides sont les suivants :
Pour le type de fournisseur
msteams, le paramètre valide est :
Pour le type de fournisseur
slack, le paramètre valide est :
Pour les avis OCI de fournisseur de type
oci, les paramètres valides sont les suivants :
Avec le fournisseur
oci, il existe différents points d'extrémité possibles pour un message, en fonction des abonnements. Le paramètre title est traité différemment pour différents abonnements :
L'ID canal est un ID unique pour un canal et est différent du nom du canal. Dans Slack, lorsque vous consultez les détails du canal, vous pouvez trouver l'ID du canal dans l'onglet "À propos". Ce paramètre est obligatoire. |
Notes d'utilisation
Utilisez la procédure DBMS_CLOUD.CREATE_CREDENTIAL(credential_name, username, password) pour créer l'objet de données d'identification. Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.
- Pour le fournisseur
email, l'utilisateur nécessite un point d'extrémité de connexion SMTP pour que le serveur de transmission de messages obtiennesmtp_host. L'utilisateur a également besoin d'un expéditeur approuvé SMTP et de ses données d'identification pour s'authentifier auprès du serveur de transmission de messages afin d'obtenircredential_name. La connexion SMTP doit être configurée et les données d'identification SMTP doivent être générées et approuvées. - Pour le fournisseur
msteams, l'utilisateur nécessite l'application Microsoft Teams et un robot configuré dans celle-ci. L'application doit être publiée dans l'organisation et installée après avoir obtenu l'approbation de l'administrateur du centre d'administration. L'utilisateur doit également avoir accès aux autorisationsFiles.ReadWrite.AlletChannelSettings.Read.Allpour l'API Graph à partir de son portail Azure. Pour générer le jeton requis, l'utilisateur requiertbot_iddans le nom d'utilisateur etbot_secretdans le mot de passe. - Pour le fournisseur
slack, la valeurusernamepeut être toute chaîne valide etpasswordest le jeton de robot Slack. -
DBMS_CLOUD_NOTIFICATIONprend en charge le fournisseur d'avis OCI. Voir Aperçu des avis pour plus de détails sur le fournisseur d'avis OCI.- Pour utiliser le fournisseur d'avis OCI, vous devez effectuer les opérations suivantes :
- Créer un sujet. Voir Création d'un sujet pour plus de détails sur la création d'un sujet
- Créez les abonnements requis. Voir Création d'un abonnement pour plus de détails sur la création d'un abonnement.
- Après avoir créé les abonnements, confirmez-les. Les messages ne sont publiés que pour les abonnements confirmés. Pour plus de détails sur la confirmation des abonnements, voir Confirmation d'un abonnement.
- L'instance Autonomous AI Database, les données d'identification (si vous utilisez des données d'identification d'utilisateur) et le sujet d'abonnement doivent tous se trouver dans la même région.
- Notez les limitations suivantes :
- Taille limite du message : La taille limite du message par demande est de 64 Ko. Les messages dépassant cette taille ne peuvent pas être envoyés ou traités dans une seule demande.
- Limite de débit de transmission de messages : Il existe différentes limites de débit de transmission de messages en fonction du protocole utilisé.
- Protocole
email: la limite est de 10 messages par minute par point d'extrémité.
Cette restriction peut avoir une incidence sur la vitesse à laquelle les messages peuvent être transmis et reçus.
- Protocole
- Limite de transactions par minute (TPM) par location : Il existe une limite de TPM de 60 par sujet pour cette opération. Cette limite représente le nombre maximal de messages par minute pouvant être traités ou traités pour un sujet donné. Si cette limite est dépassée, les messages risquent de ne pas être traités ou traités à un rythme plus lent.
- Pour utiliser le fournisseur d'avis OCI, vous devez effectuer les opérations suivantes :
Exemples
Envoyez un message texte avec le fournisseur email :
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;
/Envoyer un message texte au fournisseur msteams :
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;
/
Envoyer un message texte au fournisseur slack :
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;
/
Envoyez un message texte avec le service d'avis OCI, entrez le fournisseur oci :
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;
/