Enviar Mensagens do Autonomous Database para o OCI Notifications Service

Descreve como enviar mensagens do Autonomous Database para um tópico do serviço OCI Notifications.

As assinaturas que você configura com o serviço OCI Notifications determinam pontos finais para um tópico. As mensagens publicadas são enviadas a cada inscrição de um tópico. Há vários protocolos de assinatura suportados, incluindo: e-mail, função e Slack. Consulte Visão Geral de Notificações para obter mais informações.

Quando você usa o serviço OCI Notifications com o pacote DBMS_CLOUD_NOTIFICATION, só há suporte para o procedimento DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE (o procedimento DBMS_CLOUD_NOTIFICATION.SEND_DATA não é suportado).

Preparar-se para Enviar Notificações do OCI pelo Autonomous Database

Para enviar notificações a tópicos no serviço OCI Notifications, primeiro crie tópicos e assinaturas no OCI Notifications.

Como pré-requisito, antes de enviar mensagens com o OCI Notifications, faça o seguinte:

  1. Criar um tópico do OCI Notifications.

    Consulte Criando um Tópico para obter detalhes sobre a criação de um tópico.

  2. Criar assinaturas do OCI Notifications.

    Consulte Criando uma Assinatura para obter detalhes sobre a criação de uma assinatura.

    As assinaturas que você configura determinam os pontos finais de um tópico. As mensagens publicadas são enviadas a cada inscrição de um tópico. Há vários protocolos de assinatura suportados, incluindo: e-mail, função e Slack.

    Consulte Visão Geral de Notificações para obter mais informações.

  3. Depois de criar as assinaturas do OCI Notifications, confirme as assinaturas.

    Você só pode publicar mensagens em assinaturas confirmadas. Consulte Confirmando uma Assinatura para obter detalhes sobre a confirmação de assinaturas.

Enviar Mensagens a um Tópico do OCI Notifications

Descreve as etapas para enviar mensagens a um tópico do serviço OCI Notifications.

  1. Crie um tópico e inscreva-se.
  2. Crie um objeto de credencial para acessar o serviço OCI Notifications do Autonomous Database.

    Você pode usar credenciais de chave de assinatura do Oracle Cloud Infrastructure ou credenciais de controlador de recursos.

    • Crie credenciais de chave de assinatura do Oracle Cloud Infrastructure. Por exemplo:

      BEGIN
         DBMS_CLOUD.CREATE_CREDENTIAL (
             credential_name => ‘OCI_KEY_CRED’,
             user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
             tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
             private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
             fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
      END;
      /

      Consulte CREATE_CREDENTIAL Procedures para obter mais informações.

    • Crie credenciais e políticas do controlador de recursos.

      Consulte Usar o Controlador de Recursos para Acessar Recursos da Oracle Cloud Infrastructure para obter mais informações.

  3. Enviar uma mensagem.
    • Envie uma mensagem usando as credenciais de chave de assinatura do Oracle Cloud Infrastructure:

      BEGIN
          DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
              provider         => 'oci',
              credential_name  => 'OCI_KEY_CRED',
              message          => 'Text message',
              params           => json_object('topic_ocid' value 'oci********pa',
                                              'title'value 'Title for message'));
      END;
      / 
    • Envie uma mensagem com credenciais do controlador de recursos:

      BEGIN
          DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
              provider         => 'oci',
              credential_name  => 'OCI$RESOURCE_PRINCIPAL',
              message          => 'Text message',
              params           => json_object('topic_ocid' value 'oci********pa',
                                              'title'      value 'Title for message'));
      END;
      / 

    Com o provedor oci, há diferentes pontos finais possíveis para uma mensagem, com base nas assinaturas. O parâmetro title é tratado de forma diferente para diferentes protocolos de assinatura:

    • email: O title especifica a linha de assunto da mensagem.
    • Slack: O valor title não é usado. Se estiver incluído, o valor será ignorado.

Consulte SEND_MESSAGE Procedures para obter mais informações.

Limitações para Notificações com o OCI Notifications Service

Há limitações quando você usa DBMS_CLOUD_NOTIFICATION para enviar mensagens e usa o provedor oci (serviço OCI Notifications).

Observe as seguintes limitações:

  • Limite de Tamanho da Mensagem: O limite de tamanho da mensagem por solicitação é de 64 KB. Mensagens que excedem este tamanho não podem ser enviadas ou processadas em uma única solicitação.
  • Limite de Taxa de Entrega de Mensagens: Existem diferentes limites de taxa de entrega de mensagens, dependendo do protocolo usado.
    • Protocolo email: o limite é de 10 mensagens por minuto por ponto final.

    Esta restrição pode afetar a velocidade com que as mensagens podem ser transmitidas e recebidas.

  • Limite de Transações por Minuto (TPM) por tenancy: Há um limite de TPM de 60 por tópico para esta operação. Esse limite representa o número máximo de mensagens por minuto que podem ser processadas ou tratadas para um determinado tópico. Exceder esse limite pode resultar em mensagens não sendo processadas ou processadas em uma taxa mais lenta.
  • A instância do Autonomous Database, a credencial, se você estiver usando credenciais de usuário e o tópico de assinatura deverão estar localizados na mesma região.

Consulte Visão Geral de Notificações para obter mais informações sobre o OCI Notifications.