从 Autonomous Database on Dedicated Exadata Infrastructure 发送 Microsoft Teams 通知

您可以将 Microsoft Teams 配置为使用 DBMS_CLOUD_NOTIFICATION 程序包将查询从 Autonomous Database on Dedicated Exadata Infrastructure 发送消息、预警或输出到 Microsoft Teams 渠道。

准备从 Autonomous Database 发送 Microsoft Teams 通知

首先在 Microsoft Teams 应用程序中配置机器人。接下来,创建身份证明以与 DBMS_CLOUD_NOTIFICATION 过程一起使用,以从 Autonomous Database 发送 Microsoft Teams 通知。

要配置 Microsoft Teams 通知:

  1. 创建 Microsoft Teams 应用程序并在其中添加机器人。有关设置应用程序的信息,请参阅团队开发人员门户
  2. 机器人管理部分中,确保机器人具有密钥、设置为团队的范围以及发送通知的权限。
  3. 将应用程序发布到组织,使其可供组织中的人员使用。
  4. IT 管理员从管理中心批准应用程序后,请从 Teams 中的应用程序部分安装应用程序。
  5. 使用以下说明从 Azure 门户请求图形 API 应用程序的 Files.ReadWrite.AllChannelSettings.Read.All 权限:
    1. 登录 Azure 门户,使用左侧面板导航到 Azure Active Directory ,然后选择应用程序选项。
    2. “应用程序”页显示您拥有的应用程序以及添加到这些应用程序的机器人。单击机器人以查看其详细信息。
    3. 从机器人概览页面复制目录/租户 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. 创建身份证明对象以从 Autonomous Database 访问 Microsoft Teams 应用程序。

    提示:

    如果无法成功使用 CREATE_CREDENTIAL 过程,请咨询 ADMIN 用户以授予对 DBMS_CLOUD 软件包的执行访问权限。

    身份证明的用户名是 bot_id,密码是机器人密钥。

    例如:

    
    BEGIN     
        DBMS_CLOUD.CREATE_CREDENTIAL(credential_name => 'TEAMS_CRED',       
            username        => 'bot_id', 
            password        => 'bot_secret');
    END;
    /
     

    有关更多信息,请参见CREATE_CREDENTIAL Procedure

将消息发送到 Microsoft Teams 通道

从 Autonomous Database 发送 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 参数指定通道。

有关更多信息,请参见SEND_MESSAGE Procedure

将查询结果发送到 Microsoft Teams 渠道

Prepare to Send Microsoft Teams Notifications from Autonomous Database 中所述创建 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 值中的租户、团队、渠道、标题和数据类型。

注意:

对 Microsoft Teams 使用 DBMS_CLOUD_NOTIFICATION.SEND_DATA 时支持的最大文件大小为 4MB。

有关更多信息,请参见SEND_DATA Procedure