Criando um Conector com uma Origem de Streaming

Crie um conector no Connector Hub para transferir dados de fluxo do serviço Streaming para um serviço de destino.

Para obter mais informações sobre o serviço Streaming, consulte Streaming.

Um conector definido com uma tarefa de função de origem e (opcional) do Streaming suporta os seguintes destinos: Functions, Log Analytics, Object Storage e Streaming. O alvo Notificações é suportado somente quando nenhuma tarefa de função é usada.

Para obter um exemplo do workflow do Connector Hub, consulte Visão Geral do Connector Hub. Para obter um exemplo de conector que usa o Monitoring como origem, consulte Cenário: Enviando Métricas ao Serviço Object Storage.

Observação

  • Para o esquema de entrada de stream, consulte Referência de Mensagem.
  • Para um destino de Notificações com origem de Streaming, todas as mensagens são enviadas como blobs de JSON brutos.

Período de Retenção: Origem do Streaming

O período de retenção da origem do Streaming no Connector Hub é definido pelo cliente. Consulte Limites de Recursos do Serviço Streaming. Para obter mais informações sobre entrega, consulte Detalhes da Entrega.

Juntamente com o período de retenção, a posição de leitura da origem do Streaming determina onde no stream começar a mover dados. Você especifica a posição de leitura ao especificar a conexão de origem.

Pré-requisitos de Ponto Final Privado para Streams

Observação

Não é possível reformular um conector existente para usar um stream com um ponto final privado. Se o pool de streams selecionado para a origem ou o destino do stream for público, ele não poderá ser alterado para privado e o conector não poderá ser atualizado para fazer referência a um stream privado. Para alterar a origem ou o destino para usar outro stream privado ou para usar uma origem ou um destino diferente do Streaming, recrie o conector com a origem e o destino desejados. Um exemplo da necessidade de outro stream privado é um stream que foi movido para outro pool de streams. Nesse caso, recrie o conector usando o fluxo movido. Certifique-se de desativar ou excluir o conector antigo com a origem ou o destino do stream que você não deseja mais.

A configuração de ponto final privado é suportada para fluxos de origem e destino. Veja a seguir os pré-requisitos para acessar streams que usam pontos finais privados.

  • Certifique-se de que você tenha permissões de acordo com as seguintes políticas:
    allow group <group-name> to manage virtual-network-family in compartment id <compartment-ocid>
      where any {request.operation='CreatePrivateEndpoint',
        request.operation='UpdatePrivateEndpoint',
        request.operation='DeletePrivateEndpoint',
        request.operation='ChangePrivateEndpointCompartment',
        request.operation='EnableReverseConnection',
        request.operation='ModifyReverseConnection',
        request.operation='DisableReverseConnection' 
    }
    allow group <group-name> to read stream-family in compartment id <compartment-ocid>
    
  • A melhor prática de segurança é localizar um stream privado e seu conector na mesma tenancy.

Após criar o conector, configure as regras de entrada e saída para permitir que o conector acesse esse ponto final privado. Consulte Pontos Finais Privados: Configurar Regras de Entrada e Saída.

    1. Na página da lista Conectores, selecione Criar conector. Se precisar de ajuda para localizar a página da lista, consulte Listando Conectores.
    2. Na página Criar conector, digite um nome amigável para o novo conector e uma descrição opcional. Evite digitar informações confidenciais.
    3. Selecione o compartimento no qual você deseja armazenar o novo conector.
    4. Em Configurar conector, para Origem, selecione Streaming.
    5. Para Destino, selecione o serviço para o qual você deseja transferir os dados do fluxo:
      • Functions: Envie dados de fluxo para uma função.
      • Logging Analytics: Envie dados de stream para um grupo de logs.
      • Notifications: Envie dados de fluxo para um tópico. As notificações só são suportadas quando nenhuma tarefa de função é definida.
      • Object Storage: Envie dados de fluxo para um bucket.
      • Streaming: Envie dados de fluxo para um stream.
    6. (Opcional) Para ativar logs de serviço para o novo conector, selecione a chave Logs e forneça os seguintes valores:
      • Categoria de log: O valor Rastreamento de Conector é selecionado automaticamente.
      • Compartimento: Selecione o compartimento que você deseja armazenar os logs de serviço do conector.
      • Grupo de logs: Selecione o grupo de logs que você deseja armazenar os logs de serviço. Para criar um novo grupo de logs, selecione Criar novo grupo e informe um nome.
      • Nome do log: Opcionalmente, digite um nome para o log.
      • Mostrar opções avançadas:
        • Retenção de log: Como opção, especifique por quanto tempo manter os logs de serviço (padrão: 30 dias).
    7. Em Configurar conexão de origem, selecione o fluxo de origem:
      Observação

      A configuração de ponto final privado é suportada. Para usar um ponto final privado, consulte Pré-requisitos de Ponto Final Privado para Streams.
      • Compartimento: Selecione o compartimento que contém o fluxo desejado.
      • Pool de fluxos: Selecione o pool de fluxos que contém o fluxo desejado.
        Observação

        Para selecionar um pool de streams e um stream para um conector, você deve ter autorização para ler o pool de streams e o stream. Consulte Políticas do Serviço IAM (Protegendo o Connector Hub).
      • Stream: Selecione o nome do stream do qual você deseja receber dados.
      • Posição de leitura: Especifique a posição do cursor da qual o stream será lido.
        • Latest: Inicia a leitura de mensagens publicadas após a criação do conector.
          • Se a primeira execução de um novo conector com essa configuração for bem-sucedida, ele moverá os dados do horário de criação do conector. Se a primeira execução falhar (como com políticas ausentes), depois da resolução, o conector moverá os dados do tempo de criação do conector ou, se o tempo de criação estiver fora do período de retenção, os dados mais antigos disponíveis no fluxo. Por exemplo, considere um conector criado às 10 da manhã para um fluxo com um período de retenção de duas horas. Se as execuções com falha forem resolvidas às 11h, o conector moverá os dados das 10h. Se as execuções com falha forem resolvidas às 1h, o conector moverá os dados mais antigos disponíveis no fluxo.
          • Posteriormente, é executada a movimentação de dados da próxima posição no fluxo. Se uma execução posterior falhar, depois da resolução, o conector moverá os dados da próxima posição no fluxo ou dos dados mais antigos disponíveis no fluxo, dependendo do período de retenção do fluxo.
        • Reduzir Horizonte: Inicia a leitura da mensagem disponível mais antiga do stream.
          • Se a primeira execução de um novo conector com essa configuração for bem-sucedida, ele moverá os dados dos dados mais antigos disponíveis no fluxo. Se a primeira execução falhar (como com políticas ausentes), depois da resolução, o conector moverá os dados mais antigos disponíveis no fluxo, independentemente do período de retenção do fluxo.
          • Posteriormente, é executada a movimentação de dados da próxima posição no fluxo. Se uma execução posterior falhar, depois da resolução, o conector moverá os dados da próxima posição no fluxo ou dos dados mais antigos disponíveis no fluxo, dependendo do período de retenção do fluxo.
    8. (Opcional) Em Configurar tarefa de função, configure uma tarefa de função para processar dados de fluxo usando o Serviço Functions):
      • Selecionar tarefa: Selecione Função.
      • Compartimento: Selecione o compartimento que contém a função desejada.
      • Aplicativo de função: Selecione o nome do aplicativo de função que inclui a função desejada.
      • Função: Selecione o nome da função que você deseja usar para processar os dados recebidos da origem.

        Para uso pelo conector como uma tarefa, a função deve ser configurada para retornar uma das seguintes respostas:

        • Lista de entradas JSON (deve definir o cabeçalho de resposta Content-Type=application/json)
        • Entrada JSON única (deve definir o cabeçalho de resposta Content-Type=application/json)
        • Objeto binário único (deve definir o cabeçalho de resposta Content-Type=application/octet-stream)
      • Mostrar opções adicionais: Selecione este link e especifique limites para cada batch de dados enviado à função. Para usar configurações manuais, forneça valores para limite de tamanho do lote (KBs) e limite de tempo do lote (segundos).

      Considerações para tarefas de função:

      • O Connector Hub não faz parsing da saída da tarefa de função. A saída da tarefa de função é gravada como está no destino. Por exemplo, ao usar um destino do serviço Notifications com uma tarefa de função, todas as mensagens são enviadas como blobs de JSON brutos.
      • As funções são chamadas de forma síncrona com 6 MB de dados por chamada. Se os dados excederem 6 MB, o conector chamará a função novamente para mover os dados que estão acima do limite. Essas chamadas são tratadas sequencialmente.
      • As funções podem ser executadas por até cinco minutos. Consulte Detalhes da Entrega.
      • As tarefas de função são limitadas a funções escalares.
    9. Se você tiver selecionado Funções como destino, em Configurar destino, configure a função para a qual enviar os dados de log. Em seguida, vá para a etapa 15.
      • Compartimento: Selecione o compartimento que contém a função desejada.
      • Aplicativo de função: Selecione o nome do aplicativo de função que contém a função desejada.
      • Função: Selecione o nome da função para a qual você deseja enviar os dados.
      • Mostrar opções adicionais: Selecione este link e especifique limites para cada batch de dados enviado à função. Para usar definições manuais, forneça valores para limite de tamanho do lote (KBs ou número de mensagens) e limite de tempo do lote (segundos).

        Por exemplo, limite o tamanho do lote selecionando 5.000 kilobytes ou 10 mensagens. Um exemplo de limite de tempo do batch é de 5 segundos.

      Considerações para destinos de Funções:

      • O conector descarrega dados de origem como uma lista JSON em lotes. Lote máximo, ou carga útil, o tamanho é de 6 MB.
      • As funções são chamadas de forma síncrona com 6 MB de dados por chamada. Se os dados excederem 6 MB, o conector chamará a função novamente para mover os dados que estão acima do limite. Essas chamadas são tratadas sequencialmente.
      • As funções podem ser executadas por até cinco minutos. Consulte Detalhes da Entrega.
      • Não retorne dados dos destinos do serviço Functions para conectores. O Connector Hub não lê os dados retornados dos destinos do serviço Functions.
    10. Se você tiver selecionado o serviço Logging Analytics como destino, em Configurar destino, configure o grupo de logs para o qual enviar os dados de log. Em seguida, vá para a etapa 15.
      • Compartimento: Selecione o compartimento que contém o grupo de logs desejado.
      • Grupo de logs: Selecione o grupo de logs desejado.
      • Identificador da origem do log (somente para origem do Streaming): Selecione a origem do log.
    11. Se você tiver selecionado Notificações como destino, em Configurar destino, configure o tópico para o qual enviar os dados de log. Em seguida, vá para a etapa 15.
      • Compartimento: Selecione o compartimento que contém o tópico desejado.
      • Tópico: Selecione o nome do tópico para o qual deseja enviar os dados. Para destinos de Streaming, as mensagens são enviadas como blobs JSON brutos.

      Considerações para destinos de Notificações:

      • O destino Notificações só é suportado com a origem do Streaming quando nenhuma tarefa de função é usada.
      • O tamanho máximo da mensagem para o destino Notificações é 128 KB. Qualquer mensagem que exceda o tamanho máximo será eliminada.
      • As mensagens SMS exibem resultados inesperados para determinadas configurações do conector. Esse problema se limita a tópicos que contêm inscrições SMS para as configurações indicadas do conector. Para obter mais informações, consulte Várias mensagens SMS para uma única notificação.
    12. Se você tiver selecionado o serviço Object Storage como destino, em Configurar destino, configure o bucket para o qual enviar os dados de log. Em seguida, vá para a etapa 15.
      • Compartimento: Selecione o compartimento que contém o bucket desejado.
      • Bucket: Selecione o nome do bucket para o qual você deseja enviar os dados.
      • Prefixo do Nome do Objeto: Opcionalmente, informe um valor de prefixo.
      • Mostrar opções adicionais: Selecione este link e, opcionalmente, informe valores para o tamanho do batch (em MBs) e o tempo do batch (em milissegundos).

      Considerações para destinos de Armazenamento de Objetos:

      • Detalhes da substituição do batch:

        • Tamanho da substituição do batch: 100 MB
        • Tempo de substituição do batch: 7 minutos
      • Os arquivos salvos no serviço Object Storage são compactados usando gzip.

    13. Se você selecionou Streaming como destino, em Configurar destino, configure o fluxo para o qual enviar os dados de log.
      Observação

      Para selecionar um pool de streams e um stream para um conector, você deve ter autorização para ler o pool de streams e o stream. Consulte Políticas do IAM (Protegendo o Connector Hub). Configuração de ponto final privado é suportada. Para usar um ponto final privado, consulte Pré-requisitos de Ponto Final Privado para Streams.
      • Compartimento: Selecione o compartimento que contém o fluxo desejado.
      • Stream: Selecione o nome do stream para o qual você deseja enviar os dados.
    14. Para aceitar políticas padrão, selecione o link Criar fornecido para cada política padrão.

      As políticas padrão são oferecidas para qualquer autorização necessária para que este conector acesse os serviços de origem, tarefa e destino.

      Você pode obter essa autorização por meio dessas políticas padrão ou de políticas baseadas em grupo. As políticas padrão são oferecidas sempre que você usa a Console para criar ou editar um conector. A única exceção é quando a política exata já existe no serviço IAM; nesse caso, a política padrão não é oferecida. Para obter mais informações sobre esse requisito de autorização, consulte Autenticação e Autorização.

      • Se você não tiver permissões para aceitar políticas padrão, entre em contato com o administrador.
      • As políticas criadas automaticamente permanecem quando os conectores são excluídos. Como prática recomendada, exclua as políticas associadas ao excluir o conector.

      Para revisar uma política recém-criada, selecione o link de exibição associado.

    15. (Opcional) Adicione uma ou mais tags ao conector: Selecione Mostrar Opções Avançadas para mostrar a seção Adicionar Tags.
      Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deverá ter permissões para usar o namespace da tag. Para obter mais informações sobre tags, consulte Tags de Recurso. Se você não tiver certeza se deseja aplicar tags, ignore esta opção ou pergunte a um administrador. Você pode aplicar tags posteriormente.
    16. Selecione Criar.
    O processo de criação é iniciado e seu progresso é exibido. Na conclusão, a página de detalhes do conector é aberta.
  • Use o comando oci sch service-connector create e os parâmetros necessários para criar um conector com uma origem de Streaming:

    oci sch service-connector create --display-name "<display_name>" --compartment-id <compartment_OCID> --source [<stream_source_in_JSON>] --target [<target_in_JSON>]

    Para obter uma lista completa dos parâmetros e valores dos comandos da CLI, consulte a Referência de Comandos da CLI.

  • Execute a operação CreateServiceConnector para criar um conector.

    Para criar um conector com uma origem de Streaming, preencha source na solicitação (CreateServiceConnectorDetails) com detalhes do streaming. Para obter um exemplo, consulte StreamingSourceDetails.

Pontos Finais Privados: Configurar Regras de Entrada e Saída

Se você criou um conector com um stream que usa um ponto final privado, configure as regras de entrada e saída para permitir que o conector acesse esse ponto final privado.

  • Obter endereços IP para configuração:
  • Permitir tráfego principal: adicione uma regra de entrada ao NSG ou à lista de segurança com a configuração a seguir.

    Console:

    • Sem Monitoramento de Estado: Não
    • Origem: rceTrafficIpAddress (Exemplo: 10.0.0.249/32)
    • Protocolo IP: TCP
    • Intervalo de Portas de Origem: Tudo
    • Faixa de Portas de Destino: Todas

    API - exemplo de regra na solicitação:

    {
      "protocol": "6",
      "source": "10.0.0.249/32"
    }
  • Adicione uma regra de saída à lista de segurança com a configuração a seguir.

    Console:

    • Sem Monitoramento de Estado: Não
    • Origem: streamPoolIpAddress (Exemplo: 10.0.0.20/32)
    • Protocolo IP: TCP
    • Intervalo de Portas de Origem: Tudo
    • Faixa de Portas de Destino: Todas

    API - exemplo de regra na solicitação:

    {
      "destination": "10.0.0.20/32",
      "protocol": "6"
    }
Observação

Não é possível reformular um conector existente para usar um stream com um ponto final privado. Se o pool de streams selecionado para a origem ou o destino do stream for público, ele não poderá ser alterado para privado e o conector não poderá ser atualizado para fazer referência a um stream privado. Para alterar a origem ou o destino para usar outro stream privado ou para usar uma origem ou um destino diferente do Streaming, recrie o conector com a origem e o destino desejados. Um exemplo da necessidade de outro stream privado é um stream que foi movido para outro pool de streams. Nesse caso, recrie o conector usando o fluxo movido. Certifique-se de desativar ou excluir o conector antigo com a origem ou o destino do stream que você não deseja mais.

Confirmar se o Novo Conector Move Dados

Depois de criar o conector, confirme se ele está movendo dados.

  • Ativar logs do conector para obter detalhes sobre o fluxo de dados.
  • Verifique os resultados esperados no serviço de destino.

A confirmação de que os dados são movidos ajuda a evitar a desativação automática, que acontece quando um conector falha por um longo tempo.

Streams privados: Não é possível reformular um conector existente para usar um stream com um ponto final privado. Se o pool de streams selecionado para a origem ou o destino do stream for público, ele não poderá ser alterado para privado e o conector não poderá ser atualizado para fazer referência a um stream privado. Para alterar a origem ou o destino para usar outro stream privado ou para usar uma origem ou um destino diferente do Streaming, recrie o conector com a origem e o destino desejados. Um exemplo da necessidade de outro stream privado é um stream que foi movido para outro pool de streams. Nesse caso, recrie o conector usando o fluxo movido. Certifique-se de desativar ou excluir o conector antigo com a origem ou o destino do stream que você não deseja mais.