Enviar Notificações do Slack do Autonomous AI Database na Infraestrutura Dedicada do Exadata

Você pode configurar o Slack para enviar mensagens, alertas ou saída de uma consulta do Autonomous AI Database on Dedicated Exadata Infrastructure para um canal do Slack usando o pacote DBMS_CLOUD_NOTIFICATION.

Prepare-se para Enviar Notificações do Slack do Autonomous AI Database

Para enviar notificações do Slack, configure seu aplicativo Slack para receber mensagens do Autonomous AI Database. Em seguida, crie uma credencial para usar com os procedimentos DBMS_CLOUD_NOTIFICATION a fim de enviar notificações do Slack do Autonomous AI Database.

Para usar o Slack com procedimentos DBMS_CLOUD_NOTIFICATION:

  1. Crie seu aplicativo Slack.

    O aplicativo Slack é instalado em um Espaço de Trabalho do Slack, que por sua vez tem Canais para onde as mensagens podem ser enviadas. O token do bot do aplicativo Slack deve ter os seguintes escopos de permissão definidos:

     channels:read
     chat:write
     files:write
    

    Consulte Criando um aplicativo para obter informações sobre como configurar um aplicativo Slack.

  2. Faça com que o administrador do Slack adicione o aplicativo Slack aos canais aos quais o DBMS_CLOUD_NOTIFICATION pode enviar mensagens por meio da opção "Integrações" no canal.

    Consulte Configuração básica de aplicativos para obter mais informações.

  3. Localize o token de bot do aplicativo disponível na página específica do aplicativo Slack, em https://app.slack.com.

    Consulte Configuração básica de aplicativos para obter mais informações.

  4. No Exadata Cloud@Customer, configure as definições do Proxy HTTP em seu ambiente para permitir que o banco de dados acesse o Slack. Consulte Usando a Console para Provisionar o Exadata Database Service on Cloud@Customer para obter informações sobre como configurar as definições do Proxy HTTP ao criar uma Infraestrutura do Exadata Cloud@Customer.

    Observação: A configuração de rede, incluindo o Proxy HTTP, só poderá ser editada até que a Infraestrutura do Exadata esteja no estado Requer Ativação. Uma vez ativado, você não pode editar essas configurações.

    Para configurar um Proxy HTTP para uma Infraestrutura do Exadata já provisionada, submeta uma Solicitação de Serviço (SR) no My Oracle Support. Consulte Criar uma Solicitação de Serviço no My Oracle Support para obter detalhes.

  5. Crie um objeto de credencial para acessar o aplicativo Slack no Autonomous AI Database.

    Dica: Se você não puder usar o procedimento CREATE_CREDENTIAL com sucesso, consulte o usuário ADMIN para conceder acesso de execução em pacotes DBMS_CLOUD.

    O nome de usuário da credencial é SLACK_TOKEN e a senha é o token do bot.

    Por exemplo:

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

    Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.

  6. Configure o controle de acesso para permitir que o usuário acesse serviços de rede 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;
    
  7. Se você estiver enviando SQL, configure o controle de acesso para permitir o envio de saída com DBMS_CLOUD_NOTIFICATION.SEND_DATA.

     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 no Oracle Database 19c Security Guide ou no Oracle Database 26ai Security Guide para obter mais informações.

Enviar Mensagens para um Canal do Slack

Depois de criar o objeto de credencial do Slack conforme descrito em Preparar para Enviar Notificações do Slack do Autonomous AI Database, você pode usar o procedimento DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE para enviar uma mensagem a um canal do Slack.

Exemplo:

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;
/

Use o parâmetro params para especificar o canal do Slack.

channel: Especifica o ID do Canal.

O ID do Canal é um ID exclusivo de um canal e é diferente do nome do canal. No Slack, quando você exibe os detalhes do canal, pode encontrar o ID do Canal na guia "Sobre"?. Consulte Como Localizar o ID da Equipe do Slack e o ID do Canal do Slack para obter mais informações.

Consulte Procedimento SEND_MESSAGE para obter mais informações.

Enviar Resultados da Consulta para um Canal do Slack

Depois de criar o objeto de credencial do Slack conforme descrito em Preparar para Enviar Notificações do Slack do Autonomous AI Database, você pode usar o procedimento DBMS_CLOUD_NOTIFICATION.SEND_DATA para enviar a saída de uma consulta para um canal do Slack.

Exemplo:

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;
/

Use o parâmetro params para especificar o canal do Slack e o tipo de dados:

Tópicos Relacionados