Slack-Benachrichtigungen von Autonomous AI Database on Dedicated Exadata Infrastructure senden

Sie können Slack so konfigurieren, dass Nachrichten, Alerts oder die Ausgabe einer Abfrage aus der autonomen KI-Datenbank auf dedizierter Exadata-Infrastruktur mit dem Package DBMS_CLOUD_NOTIFICATION an einen Slack-Kanal gesendet werden.

Slack-Benachrichtigungen aus autonomer KI-Datenbank senden

Um Slack-Benachrichtigungen zu senden, müssen Sie die Slack-Anwendung so konfigurieren, dass sie Nachrichten von der autonomen KI-Datenbank empfängt. Erstellen Sie als Nächstes Zugangsdaten für die DBMS_CLOUD_NOTIFICATION-Prozeduren, um Slack-Benachrichtigungen aus der autonomen KI-Datenbank zu senden.

So verwenden Sie Slack mit DBMS_CLOUD_NOTIFICATION-Prozeduren:

  1. Erstellen Sie Ihre Slack-App.

    Die Slack-App wird in einem Slack-Workspace installiert, der wiederum Kanäle enthält, über die Nachrichten gesendet werden können. Für das Bottoken der Slack-App müssen die folgenden Berechtigungsbereiche definiert sein:

     channels:read
     chat:write
     files:write
    

    Informationen zum Einrichten einer Slack-App finden Sie unter App erstellen.

  2. Lassen Sie Ihren Slack-Administrator die Slack-App zu den Kanälen hinzufügen, an die DBMS_CLOUD_NOTIFICATION eine Nachricht über die Option "Integrationen" im Kanal senden kann.

    Weitere Informationen finden Sie unter Einfaches App-Setup.

  3. Suchen Sie das Bottoken der App, das auf der spezifischen Seite der Slack-Anwendung unter https://app.slack.com verfügbar ist.

    Weitere Informationen finden Sie unter Einfaches App-Setup.

  4. Konfigurieren Sie auf Exadata Cloud@Customer die HTTP-Proxyeinstellungen in Ihrer Umgebung, damit die Datenbank auf Slack zugreifen kann. Informationen zum Einrichten der HTTP-Proxyeinstellungen beim Erstellen einer Exadata Cloud@Customer-Infrastruktur finden Sie unter Exadata Database Service on Cloud@Customer mit der Konsole bereitstellen.

    Hinweis: Die Netzwerkkonfiguration einschließlich des HTTP-Proxys kann nur bearbeitet werden, bis die Exadata-Infrastruktur den Status "Aktivierung erforderlich" aufweist. Sobald es aktiviert ist, können Sie diese Einstellungen nicht mehr bearbeiten.

    Um einen HTTP-Proxy für eine bereits bereitgestellte Exadata-Infrastruktur einzurichten, leiten Sie eine Serviceanfrage (SR) in My Oracle Support weiter. Weitere Informationen finden Sie unter Service Request in My Oracle Support erstellen.

  5. Erstellen Sie ein Zugangsdatenobjekt für den Zugriff auf die Slack-App aus der autonomen KI-Datenbank.

    Tipp: Wenn Sie die Prozedur CREATE_CREDENTIAL nicht erfolgreich verwenden können, wenden Sie sich an den ADMIN-Benutzer, um Ausführungszugriff für DBMS_CLOUD-Packages zu erteilen.

    Der Benutzername der Zugangsdaten lautet SLACK_TOKEN, und das Kennwort ist das Bottoken.

    Beispiel:

     BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'SLACK_CRED',
          username    => 'SLACK_TOKEN',
          password    => 'xoxb-34....96-34....52-zW....cy');
     END;
     /
    

    Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

  6. Konfigurieren Sie die Zugriffskontrolle, um den Benutzerzugriff auf externe Netzwerkservices (Slack) zuzulassen.

     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. Wenn Sie SQL senden, konfigurieren Sie die Zugriffskontrolle, damit die Ausgabe mit DBMS_CLOUD_NOTIFICATION.SEND_DATA gesendet werden kann.

     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;
    

    Weitere Informationen finden Sie unter Configuring Access Control for External Network Services in Oracle Database 19c Security Guide oder Oracle Database 26ai Security Guide.

Nachrichten an einen Slack-Kanal senden

Nachdem Sie das Slack-Zugangsdatenobjekt erstellt haben, wie unter "Slack-Benachrichtigungen aus autonomer KI-Datenbank senden vorbereiten" beschrieben, können Sie mit der Prozedur DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE eine Nachricht an einen Slack-Kanal senden.

Beispiel:

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;
/

Verwenden Sie den Parameter params, um den Slack-Kanal anzugeben.

channel: Gibt die Kanal-ID an.

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"?. Weitere Informationen finden Sie unter So finden Sie Ihre Slack-Team-ID und Slack-Kanal-ID.

Weitere Informationen finden Sie unter Prozedur SEND_MESSAGE.

Abfrageergebnisse an einen Slack-Kanal senden

Nachdem Sie das Slack-Zugangsdatenobjekt erstellt haben, wie unter "Slack-Benachrichtigungen aus autonomer KI-Datenbank senden vorbereiten" beschrieben, können Sie die Ausgabe einer Abfrage mit der Prozedur DBMS_CLOUD_NOTIFICATION.SEND_DATA an einen Slack-Kanal senden.

Beispiel:

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;
/

Verwenden Sie den Parameter params, um den Slack-Kanal und den Datentyp anzugeben:

Verwandte Themen