Invia notifiche Slack da Autonomous AI Database su un'infrastruttura Exadata dedicata
Puoi configurare Slack per inviare messaggi, avvisi o output di una query da Autonomous AI Database on Dedicated Exadata Infrastructure a un canale Slack utilizzando il package DBMS_CLOUD_NOTIFICATION.
Preparati a inviare notifiche Slack da Autonomous AI Database
Per inviare notifiche Slack, è necessario configurare l'applicazione Slack in modo che riceva messaggi da Autonomous AI Database. Successivamente, creare una credenziale da utilizzare con le procedure DBMS_CLOUD_NOTIFICATION per inviare notifiche Slack da Autonomous AI Database.
Per utilizzare Slack con le procedure DBMS_CLOUD_NOTIFICATION:
-
Crea la tua app Slack.
L'app Slack è installata in un'area di lavoro Slack, che a sua volta dispone di canali in cui è possibile inviare messaggi. Per il token bot dell'applicazione Slack devono essere definiti i seguenti ambiti di autorizzazione:
channels:read chat:write files:writePer informazioni sulla configurazione di un'app Slack, vedere Creazione di un'app.
-
Chiedi all'amministratore Slack di aggiungere l'app Slack ai canali a cui
DBMS_CLOUD_NOTIFICATIONpuò inviare il messaggio tramite l'opzione "Integrazioni" nel canale.Per ulteriori informazioni, vedere Impostazione di base dell'applicazione.
-
Individuare il token bot dell'applicazione disponibile nella pagina specifica dell'applicazione Slack, in
https://app.slack.com.Per ulteriori informazioni, vedere Impostazione di base dell'applicazione.
-
In Exadata Cloud@Customer, configurare le impostazioni del proxy HTTP nell'ambiente per consentire al database di accedere a Slack. Vedere Uso della console per eseguire il provisioning di Exadata Database Service on Cloud@Customer per informazioni sull'impostazione delle impostazioni del proxy HTTP durante la creazione di un'infrastruttura Exadata Cloud@Customer.
Nota: la configurazione di rete, incluso il proxy HTTP, può essere modificata solo finché l'infrastruttura Exadata non si trova nello stato Richiede attivazione. Una volta attivato, non è possibile modificare tali impostazioni.
Per impostare un proxy HTTP per un'infrastruttura Exadata già di cui è stato eseguito il provisioning, inviare una richiesta di servizio (SR) in My Oracle Support. Per informazioni dettagliate, vedere Crea una richiesta di servizio in My Oracle Support.
-
Creare un oggetto credenziale per accedere all'applicazione Slack da Autonomous AI Database.
Suggerimento: se non è possibile utilizzare correttamente la procedura
CREATE_CREDENTIAL, consultare l'utente ADMIN per concedere l'accesso di esecuzione sui packageDBMS_CLOUD.Il nome utente della credenziale è
SLACK_TOKENe la password è il token bot.Ad esempio:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'SLACK_CRED', username => 'SLACK_TOKEN', password => 'xoxb-34....96-34....52-zW....cy'); END; /Per ulteriori informazioni, vedere Procedura CREDENTIAL.
-
Configurare il controllo dell'accesso per consentire l'accesso degli utenti ai servizi di rete esterni (Slack).
BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE ( host => 'slack.com', lower_port => 443, upper_port => 443, ace => xs$ace_type( privilege_list => xs$name_list('http'), principal_name => example_invoking_user, principal_type => xs_acl.ptype_db)); END; -
Se si invia SQL, configurare il controllo dell'accesso per consentire l'invio dell'output con
DBMS_CLOUD_NOTIFICATION.SEND_DATA.BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE ( host => 'slack.com', lower_port => 443, upper_port => 443, ace => xs$ace_type( privilege_list => xs$name_list('http'), principal_name => example_invoking_user, principal_type => xs_acl.ptype_db)); END;Per ulteriori informazioni, vedere Configuring Access Control for External Network Services in Oracle Database 19c Security Guide o Oracle Database 26ai Security Guide.
Invia messaggi a un canale Slack
Dopo aver creato l'oggetto credenziale Slack come descritto in Prepara per l'invio di notifiche Slack da Autonomous AI Database, è possibile utilizzare la procedura DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE per inviare un messaggio a un canale Slack.
Esempio:
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider => 'slack',
credential_name => 'SLACK_CRED',
message => 'Alert from Autonomous Database...',
params => json_object('channel' value 'C0....08'));
END;
/
Utilizzare il parametro params per specificare il canale Slack.
channel: specifica l'ID canale.
L'ID canale è un ID univoco per un canale ed è diverso dal nome del canale. In Slack, quando si visualizzano i dettagli del canale è possibile trovare l'ID canale nella scheda "Informazioni"?. Per ulteriori informazioni, vedere Come trovare l'ID team Slack e l'ID canale Slack.
Per ulteriori informazioni, vedere Procedura SEND_MESSAGE.
Invia risultati query a un canale Slack
Dopo aver creato l'oggetto credenziale Slack come descritto in Prepara per l'invio di notifiche Slack da Autonomous AI Database, è possibile utilizzare la procedura DBMS_CLOUD_NOTIFICATION.SEND_DATA per inviare l'output di una query a un canale Slack.
Esempio:
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;
/
Utilizzare il parametro params per specificare il canale Slack e il tipo di dati:
-
channel: specifica l'ID canale.L'ID canale è un ID univoco per un canale ed è diverso dal nome del canale. In Slack, quando visualizzi i dettagli del canale puoi trovare l'ID canale nella scheda "Informazioni"? Per ulteriori informazioni, vedere Come trovare l'ID team Slack e l'ID canale Slack.
-
type: specifica il tipo di output. I valori validi sono 'csv' o 'json'.