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:

  1. 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:write
    

    Per informazioni sulla configurazione di un'app Slack, vedere Creazione di un'app.

  2. Chiedi all'amministratore Slack di aggiungere l'app Slack ai canali a cui DBMS_CLOUD_NOTIFICATION può inviare il messaggio tramite l'opzione "Integrazioni" nel canale.

    Per ulteriori informazioni, vedere Impostazione di base dell'applicazione.

  3. 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.

  4. 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.

  5. 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 package DBMS_CLOUD.

    Il nome utente della credenziale è SLACK_TOKEN e 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.

  6. 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;
    
  7. 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:

Argomenti correlati