在专用 Exadata 基础结构上从自治 AI 数据库发送 Microsoft Teams 通知
您可以将 Microsoft Teams 配置为使用 DBMS_CLOUD_NOTIFICATION 程序包将查询的消息、预警或输出从专用 Exadata 基础结构上的 Autonomous AI Database 发送到 Microsoft Teams 渠道。
准备从自治 AI 数据库发送 Microsoft Teams 通知
首先在 Microsoft Teams 应用程序中配置机器人。接下来,创建身份证明以与 DBMS_CLOUD_NOTIFICATION 过程一起使用,以便从自治 AI 数据库发送 Microsoft Teams 通知。
要配置 Microsoft Teams 通知,请执行以下操作:
-
创建您的 Microsoft Teams 应用程序并在其中添加机器人。有关设置应用程序的信息,请参阅面向团队的开发人员门户。
-
在机器人管理部分中,确保机器人具有密钥、范围设置为团队以及发送通知的权限。
-
将应用发布到您的组织,让它提供给您组织中的人员。
-
在 IT 管理员从管理中心批准应用程序后,从 Teams 中的应用程序部分安装该应用程序。
-
使用以下说明从 Azure Portal 请求对 Graph API 应用程序的
Files.ReadWrite.All和ChannelSettings.Read.All权限:-
登录 Azure 门户,使用左侧面板导航到 Azure Active Directory ,然后选择应用程序选项。
-
“应用程序”页显示您拥有的应用程序以及添加到这些应用程序的机器人。单击机器人以查看其详细信息。
-
从机器人概览页复制 directory/tenant id 以供以后使用。
-
然后,转到左侧面板中的 API 权限。在 API 权限下,单击添加权限,依次选择 Microsoft 图形和应用程序权限。
-
搜索
Files.ReadWrite.All和ChannelSettings.Read.All权限并添加这些权限。
-
-
请 IT 管理员按照以下步骤批准来自 Azure 门户的上述请求权限:
-
登录 Azure 门户,使用左侧面板导航到 Azure Active Directory ,然后选择应用程序选项。
-
从应用程序页中选择所有应用程序。
-
按名称搜索 application/bot ,转至 API 权限,并授予对所请求权限的 ADMIN 同意:
Files.ReadWrite.All和ChannelSettings.Read.All。
提示: IT 管理员批准您的应用后,您可以向其他用户提供机器人 ID 和私钥,以便将应用安装在组织的 Teams 中。
-
-
在应用程序获得 IT 管理员的批准并获得上述请求的权限后,您可以使用应用程序的机器人 ID 和密钥来创建凭证对象并生成机器人令牌。
-
要将查询结果发送到 Microsoft Teams 渠道,请获取
team id和tenant id。提示:
team id位于 /team/ 和 /conversations 之间的团队链接中。tenant id位于团队链接末尾的 "tenantId=" 之后。通过单击团队名称旁边的三个点并选择获取团队链接,可以找到此链接。例如:
https://teams.microsoft.com/l/team/teamID/conversations?groupId=groupid%tenantId=tenantid -
获取
channelID。提示:
channelID位于 /team/ 与通道名称之间的通道链接中。通过单击渠道名称旁边的三个点并选择获取渠道链接,可以找到此链接。例如:
https://teams.microsoft.com/l/channel/channelID/channel_name?groupId=groupid&tenantId=tenantid -
在 Exadata Cloud@Customer 上,配置环境中的 HTTP 代理设置以允许数据库访问 Microsoft Teams。有关在创建 Exadata Cloud@Customer 基础结构时设置 HTTP 代理设置的信息,请参见 Using the Console to Provision Exadata Database Service on Cloud@Customer 。
注:只有在 Exadata 基础结构处于“需要激活”状态之前,才能编辑包括 HTTP 代理的网络配置。一旦激活,您就无法编辑这些设置。
要为已预配的 Exadata 基础结构设置 HTTP 代理,请在 My Oracle Support 中提交服务请求 (SR)。有关详细信息,请参见在 My Oracle Support 中创建服务请求。
-
创建身份证明对象以从自治 AI 数据库访问 Microsoft Teams 应用程序。
提示:如果无法成功使用
CREATE_CREDENTIAL过程,请咨询 ADMIN 用户以授予对DBMS_CLOUD软件包的执行访问权限。凭证的用户名是 bot_id,密码是 bot 密钥。
例如:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(credential_name => 'TEAMS_CRED', username => 'bot_id', password => 'bot_secret'); END; /有关更多信息,请参见 CREATE_CREDENTIAL Procedure 。
将消息发送到 Microsoft Teams 渠道
按“准备从自治 AI 数据库发送 Microsoft Teams 通知”中所述创建 Microsoft Teams 身份证明对象后,可以使用 DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE 过程向 Microsoft Teams 渠道发送消息。
示例:
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
provider => 'msteams',
credential_name => 'TEAMS_CRED',
message => 'text from new teams api',
params => json_object('channel' value 'channelID'));
END;
/
使用 params 参数指定通道。
channel :指定从 Prepare to Send Microsoft Teams Notifications from Autonomous AI Database 中的步骤 10 获取的渠道 ID。
有关更多信息,请参见 SEND_MESSAGE Procedure 。
将查询结果发送到 Microsoft Teams 渠道
按“准备从自治 AI 数据库发送 Microsoft Teams 通知”中所述创建 Microsoft Teams 身份证明对象后,可以使用 DBMS_CLOUD_NOTIFICATION.SEND_DATA 过程将查询的输出发送到 Microsoft Teams 通道。
示例:
BEGIN
DBMS_CLOUD_NOTIFICATION.SEND_DATA(provider => 'msteams',
credential_name => 'TEAMS_CRED',
query => 'SELECT tablespace_name FROM dba_tablespaces',
params => json_object('tenant'value '5b743bc******c0286',
'team'value '0ae401*********5d2bd',
'channel'value '19%3a94be023*****%40thread.tacv2',
'title'value 'today',
'type'value 'csv'));
END;
/
使用 params 参数指定 string 值中的租户、团队、渠道、标题和数据类型。
-
tenant :指定从 Prepare to Send Microsoft Teams Notifications from Autonomous AI Database 中的步骤 8 获取的租户 ID。
-
团队:指定从 Prepare to Send Microsoft Teams Notifications from Autonomous AI Database 中的步骤 8 获取的团队 ID。
-
渠道:指定从 Prepare to Send Microsoft Teams Notifications from Autonomous AI Database 中的步骤 9 获取的渠道 ID。
-
title(标题):指定文件的标题。标题只能包含字母、数字、下划线和连字符。Microsoft Teams 中出现的文件名是标题参数和时间戳的串联,以确保唯一性。最大标题大小为 50 个字符。
例如:
'title'_'timestamp'.'format' -
type :指定输出格式。有效值为 CSV 或 JSON。
注意:将 DBMS_CLOUD_NOTIFICATION.SEND_DATA 用于 Microsoft Teams 时支持的最大文件大小为 4MB。