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 von Autonomous AI Database on Dedicated Exadata Infrastructure mit dem Package DBMS_CLOUD_NOTIFICATION an einen Slack-Kanal gesendet werden.

Slack-Benachrichtigungen von Autonomous AI Database senden

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

So verwenden Sie Slack mit DBMS_CLOUD_NOTIFICATION-Prozeduren:

  1. Slack-App erstellen

    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 Berechtigungsgeltungsbereiche definiert sein:

    channels:read
    chat:write
    files:write

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

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

    Weitere Informationen finden Sie unter Einrichtung der einfachen App.

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

    Weitere Informationen finden Sie unter Einrichtung der einfachen App.

  4. Konfigurieren Sie in 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 sie 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 in My Oracle Support weiter. Weitere Informationen finden Sie unter Serviceanfrage in My Oracle Support erstellen.

  5. Erstellen Sie ein Zugangsdatenobjekt, um über Autonomous AI Database auf die Slack-App zuzugreifen.

    Tipp:

    Wenn Sie die Prozedur CREATE_CREDENTIAL nicht erfolgreich verwenden können, wenden Sie sich an den ADMIN-Benutzer, um Ausführungszugriff auf 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 so, dass das Senden der Ausgabe mit DBMS_CLOUD_NOTIFICATION.SEND_DATA zulässig ist.
    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 suchen Sie die Slack-Team-ID und die 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:

  • 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 suchen Sie die Slack-Team-ID und die Slack-Kanal-ID.

  • type: Gibt den Typ der Ausgabe an. Gültige Werte sind: "csv" oder "json".

Weitere Informationen finden Sie unter Prozedur SEND_DATA.