Envío de notificaciones de Slack desde Autonomous Database

Describe cómo configurar Slack para que pueda enviar mensajes, alertas o salida de una consulta desde Autonomous Database a un canal de Slack. También se describen 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 de 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. Cree su aplicación Slack.

    La aplicación Slack está instalada 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 permisos:

    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. Pida al administrador de Slack que 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" del canal.

    Consulte Configuración básica de la aplicación 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 la aplicación 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 correctamente el procedimiento CREATE_CREDENTIAL, consulte al usuario ADMIN para otorgar acceso de ejecución en los paquetes DBMS_CLOUD.

    El nombre de usuario de la credencial es SLACK_TOKEN y la contraseña es el token de 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 Procedimiento CREATE_CREDENTIAL para obtener más información.

  5. Configure el control de acceso para permitir el acceso del usuario a 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 Configuración del control de acceso para servicios de red externos 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 Preparación 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.
Por 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 el procedimiento SEND_MESSAGE para obtener más información.

Enviar resultados de consulta a un canal de Slack

Después de crear el objeto de credencial de Slack como se describe en Preparación 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.
Por 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 obtener más información.

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

Consulte el procedimiento SEND_DATA para obtener más información.