専用Exadataインフラストラクチャ上のAutonomous AI DatabaseからのSlack通知の送信

DBMS_CLOUD_NOTIFICATIONパッケージを使用して、Autonomous AI Database on Dedicated Exadata InfrastructureからSlackチャネルに問合せのメッセージ、アラートまたは出力を送信するようにSlackを構成できます。

Autonomous AI DatabaseからのSlack通知の送信の準備

Slack通知を送信するには、Autonomous AI Databaseからメッセージを受信するようにSlackアプリケーションを構成する必要があります。次に、DBMS_CLOUD_NOTIFICATIONプロシージャで使用する資格証明を作成して、Autonomous AI DatabaseからSlack通知を送信します。

DBMS_CLOUD_NOTIFICATIONプロシージャでSlackを使用するには:

  1. Slackアプリケーションを作成します。

    SlackアプリケーションはSlackワークスペースにインストールされ、メッセージを送信できるチャネルがあります。Slackアプリケーションのボット・トークンには、次の権限スコープが定義されている必要があります:

     channels:read
     chat:write
     files:write
    

    Slackアプリケーションの設定の詳細は、アプリケーションの作成を参照してください。

  2. Slack管理者に、DBMS_CLOUD_NOTIFICATIONがチャネルの「統合」オプションを使用してメッセージを送信できるチャネルにSlackアプリケーションを追加してもらいます。

    詳細は、基本的なアプリケーション設定を参照してください。

  3. Slackアプリケーション固有のページにあるhttps://app.slack.comで、使用可能なアプリケーションのボット・トークンを見つけます。

    詳細は、基本的なアプリケーション設定を参照してください。

  4. Exadata Cloud@Customerで、データベースがSlackにアクセスできるように、環境でHTTPプロキシ設定を構成します。Exadata Cloud@Customerインフラストラクチャの作成時にHTTPプロキシ設定を設定する方法の詳細は、コンソールを使用したExadata Database Service on Cloud@Customerのプロビジョニングを参照してください。

    ノート: HTTPプロキシを含むネットワーク構成は、Exadataインフラストラクチャが「アクティブ化が必要」状態になるまで編集できます。アクティブ化した後は、これらの設定を編集できません。

    すでにプロビジョニングされているExadataインフラストラクチャのHTTPプロキシを設定するには、My Oracle Supportでサービス・リクエスト(SR)を送信してください。詳細は、My Oracle Supportでのサービス・リクエストの作成を参照してください。

  5. Autonomous AI DatabaseからSlackアプリケーションにアクセスするための資格証明オブジェクトを作成します。

    ヒント: CREATE_CREDENTIALプロシージャを正常に使用できない場合は、ADMINユーザーに問い合せて、DBMS_CLOUDパッケージに対する実行アクセス権を付与してください。

    資格証明のユーザー名はSLACK_TOKENで、パスワードはボット・トークンです。

    たとえば:

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

    詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  6. 外部ネットワーク・サービス(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. SQLを送信する場合は、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;
    

    詳細は、Oracle Database 19cセキュリティ・ガイド外部ネットワーク・サービスのアクセス制御の構成またはOracle Database 26aiセキュリティ・ガイドを参照してください。

Slackチャネルへのメッセージの送信

Autonomous AI DatabaseからSlack通知を送信するための準備の説明に従ってSlack資格証明オブジェクトを作成した後、DBMS_CLOUD_NOTIFICATION.SEND_MESSAGEプロシージャを使用してSlackチャネルにメッセージを送信できます。

例:

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

paramsパラメータを使用して、Slackチャネルを指定します。

channel: チャネルIDを指定します。

チャネルIDはチャネルの一意のIDであり、チャネル名とは異なります。Slackでは、チャネルの詳細を表示すると、チャネルIDを「バージョン情報」タブで確認できます。詳細は、「SlackチームIDおよびSlackチャネルIDの検索方法」を参照してください。

詳細は、SEND_MESSAGEプロシージャを参照してください。

Slackチャネルへの問合せ結果の送信

Autonomous AI DatabaseからSlack通知を送信する準備の説明に従ってSlack資格証明オブジェクトを作成した後、DBMS_CLOUD_NOTIFICATION.SEND_DATAプロシージャを使用して問合せの出力をSlackチャネルに送信できます。

例:

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

paramsパラメータを使用して、Slackチャネルおよびデータ型を指定します。

関連トピック