専用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を使用するには:
-
Slackアプリケーションを作成します。
SlackアプリケーションはSlackワークスペースにインストールされ、メッセージを送信できるチャネルがあります。Slackアプリケーションのボット・トークンには、次の権限スコープが定義されている必要があります:
channels:read chat:write files:writeSlackアプリケーションの設定の詳細は、アプリケーションの作成を参照してください。
-
Slack管理者に、
DBMS_CLOUD_NOTIFICATIONがチャネルの「統合」オプションを使用してメッセージを送信できるチャネルにSlackアプリケーションを追加してもらいます。詳細は、基本的なアプリケーション設定を参照してください。
-
Slackアプリケーション固有のページにある
https://app.slack.comで、使用可能なアプリケーションのボット・トークンを見つけます。詳細は、基本的なアプリケーション設定を参照してください。
-
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でのサービス・リクエストの作成を参照してください。
-
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プロシージャ」を参照してください。
-
外部ネットワーク・サービス(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; -
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チャネルおよびデータ型を指定します。
-
channel: チャネルIDを指定します。チャネルIDはチャネルの一意のIDであり、チャネル名とは異なります。Slackでは、チャネルの詳細を表示すると、チャネルIDを「バージョン情報」タブで確認できます。詳細は、「SlackチームIDおよびSlackチャネルIDの検索方法」を参照してください。
-
type: 出力タイプを指定します。有効な値は'csv'または'json'です。