Envío de notificaciones de Slack desde Autonomous Database

Describe cómo configurar Slack para que pueda enviar mensajes, alertas o salidas de una consulta desde Autonomous Database a un canal de Slack. También describe los procedimientos que se utilizan para enviar notificaciones de Slack.

Preparación para enviar notificaciones de Slack desde Autonomous Database

Para enviar notificaciones de Slack, debe configurar la aplicación Slack para que reciba mensajes de Autonomous Database. A continuación, cree una credencial para utilizarla con los procedimientos DBMS_CLOUD_NOTIFICATION para enviar notificaciones de Slack desde Autonomous Database.

Para utilizar Slack con procedimientos DBMS_CLOUD_NOTIFICATION:

  1. Crea tu aplicación de Slack.

    La aplicación Slack se instala en un espacio de trabajo de Slack, que a su vez tiene canales donde se pueden enviar mensajes. El token de bot de la aplicación Slack debe tener definidos los siguientes ámbitos de permiso:

    channels:read
    chat:write
    files:write

    Consulte Creación de una aplicación para obtener información sobre la configuración de una aplicación de Slack.

  2. Haga que su administrador de Slack agregue la aplicación de Slack a los canales a los que DBMS_CLOUD_NOTIFICATION puede enviar mensajes a través de la opción "Integraciones" en el canal.

    Consulte Configuración básica de aplicaciones para obtener más información.

  3. Localice el token de bot de la aplicación disponible en la página específica de la aplicación Slack, en https://app.slack.com.

    Consulte Configuración básica de aplicaciones para obtener más información.

  4. Cree un objeto de credencial para acceder a la aplicación Slack desde Autonomous Database.

    Consejo:

    Si no puede utilizar el procedimiento CREATE_CREDENTIAL correctamente, consulte con el usuario ADMIN para otorgar acceso de ejecución en paquetes DBMS_CLOUD.

    El nombre de usuario de la credencial es SLACK_TOKEN y la contraseña es el token del bot.

    Por ejemplo:

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

    Consulte CREATE_CREDENTIAL Procedure para obtener más información.

  5. Configure el control de acceso para permitir el acceso del usuario a los servicios de red externos (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;

    Consulte Configuring Access Control for External Network Services para obtener más información.

  6. Si está enviando SQL, configure el control de acceso para permitir el envío de salida con DBMS_CLOUD_NOTIFICATION.SEND_DATA.
    BEGIN
     DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE (
      host         => 'files.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;

    Consulte Configuring Access Control for External Network Services para obtener más información.

Envío de mensajes a un canal de Slack

Después de crear el objeto de credencial de Slack como se describe en Preparar para enviar notificaciones de Slack desde Autonomous Database, puede utilizar el procedimiento DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE para enviar un mensaje a un canal de Slack.
Ejemplo:
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;
/ 

Utilice el parámetro params para especificar el canal de Slack.

Consulte SEND_MESSAGE Procedure para obtener más información.

Envío de resultados de consultas a un canal de Slack

Después de crear el objeto de credencial de Slack como se describe en Preparar para enviar notificaciones de Slack desde Autonomous Database, puede utilizar el procedimiento DBMS_CLOUD_NOTIFICATION.SEND_DATA para enviar la salida de una consulta a un canal de Slack.
Ejemplo:
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;
/

Utilice el parámetro params para especificar el canal de Slack y el tipo de dato:

  • channel: especifica el ID de canal.

    El ID de canal es un ID único para un canal y es diferente del nombre del canal. En Slack, al ver los detalles del canal, puede encontrar el ID de canal en el separador "Acerca de". Consulte Cómo encontrar el ID de equipo de Slack y el ID de canal de Slack para más información.

  • type: especifica el tipo de salida. Los valores válidos son: 'csv' o 'json'.

Consulte SEND_DATA Procedure para obtener más información.

Temas relacionados