在专用 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 通知,请执行以下操作:

  1. 创建您的 Microsoft Teams 应用程序并在其中添加机器人。有关设置应用程序的信息,请参阅面向团队的开发人员门户

  2. 机器人管理部分中,确保机器人具有密钥、范围设置为团队以及发送通知的权限。

  3. 将应用发布到您的组织,让它提供给您组织中的人员。

  4. 在 IT 管理员从管理中心批准应用程序后,从 Teams 中的应用程序部分安装该应用程序。

  5. 使用以下说明从 Azure Portal 请求对 Graph API 应用程序的 Files.ReadWrite.AllChannelSettings.Read.All 权限:

    1. 登录 Azure 门户,使用左侧面板导航到 Azure Active Directory ,然后选择应用程序选项。

    2. “应用程序”页显示您拥有的应用程序以及添加到这些应用程序的机器人。单击机器人以查看其详细信息。

    3. 从机器人概览页复制 directory/tenant id 以供以后使用。

    4. 然后,转到左侧面板中的 API 权限。在 API 权限下,单击添加权限,依次选择 Microsoft 图形应用程序权限

    5. 搜索 Files.ReadWrite.AllChannelSettings.Read.All 权限并添加这些权限。

  6. 请 IT 管理员按照以下步骤批准来自 Azure 门户的上述请求权限:

    1. 登录 Azure 门户,使用左侧面板导航到 Azure Active Directory ,然后选择应用程序选项。

    2. 应用程序页中选择所有应用程序

    3. 按名称搜索 application/bot ,转至 API 权限,并授予对所请求权限的 ADMIN 同意:Files.ReadWrite.AllChannelSettings.Read.All

    提示: IT 管理员批准您的应用后,您可以向其他用户提供机器人 ID 和私钥,以便将应用安装在组织的 Teams 中。

  7. 在应用程序获得 IT 管理员的批准并获得上述请求的权限后,您可以使用应用程序的机器人 ID 和密钥来创建凭证对象并生成机器人令牌。

  8. 要将查询结果发送到 Microsoft Teams 渠道,请获取 team idtenant id

    提示:team id 位于 /team/ 和 /conversations 之间的团队链接中。tenant id 位于团队链接末尾的 "tenantId=" 之后。通过单击团队名称旁边的三个点并选择获取团队链接,可以找到此链接。

    例如:

    https://teams.microsoft.com/l/team/teamID/conversations?groupId=groupid%tenantId=tenantid

  9. 获取 channelID

    提示:channelID 位于 /team/ 与通道名称之间的通道链接中。通过单击渠道名称旁边的三个点并选择获取渠道链接,可以找到此链接。

    例如:

    https://teams.microsoft.com/l/channel/channelID/channel_name?groupId=groupid&tenantId=tenantid

  10. 在 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 中创建服务请求

  11. 创建身份证明对象以从自治 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 值中的租户、团队、渠道、标题和数据类型。

注意:DBMS_CLOUD_NOTIFICATION.SEND_DATA 用于 Microsoft Teams 时支持的最大文件大小为 4MB。

相关主题