Envie dados do Data Stream para o Object Storage
Aponte um stream do Data Stream para um bucket do Object Storage pelo endpoint S3, no Azion Console ou com a Azion API, e confirme a entrega.
Você pode enviar os logs de um stream a um bucket do Object Storage pelo Azion Console ou com a Azion API. Para criar um stream que grava em um bucket desde o início, consulte Primeiros passos do Data Stream. Para enviar os logs a um bucket do Amazon S3, consulte Envie logs para o Amazon S3.
O Data Stream alcança o bucket pelo endpoint S3 e grava cada lote de linhas de log como um objeto. No formulário do stream, o endpoint é definido no campo Connector, e a opção dele é Simple Storage Service (S3). Para cada campo e seus limites, consulte Endpoints.
Selecione sua interface uma vez. Os pré-requisitos e cada tarefa abaixo mostram apenas esse caminho.
Pré-requisitos
- A permissão Edit Data Stream. Para as permissões, consulte Configurações do stream.
- Um stream na conta. Para criar um, consulte Primeiros passos do Data Stream.
- Um bucket do Object Storage. Para criar um, consulte Primeiros passos com Object Storage.
- Uma credencial do Object Storage que alcance o bucket, com quatro capabilities: List Files, Write Files, List All Bucket Names e List Buckets. Na API, elas são
listFiles,writeFiles,listAllBucketNameselistBuckets. Sem as duas capabilities de listagem de buckets, cada envio falha com o status503e nenhum objeto chega ao bucket. A secret key é exibida apenas uma vez, quando a credencial é criada. Para criar a credencial, consulte Credenciais de compatibilidade com o protocolo S3.
- Acesso ao Azion Console. Para entrar, consulte Como acessar o Azion Console.
Aponte o stream para o bucket
O stream mantém a fonte de dados, os filtros e o template dele. Apenas o endpoint muda, com o endereço S3 do bucket, a região dele e o par de chaves da credencial.
Para apontar o stream para o bucket com a API, envie uma requisição PATCH apenas com a chave outputs. Substitua <stream-id> pelo ID do seu stream, <your-bucket> pelo nome do seu bucket e as duas chaves pelas chaves da sua credencial:
A API responde 200 com o stream armazenado:
A entrada de outputs contém o bucket, e last_modified avança. A fonte de dados e os transforms permanecem como estavam. Para cada chave do corpo, consulte Configurações do stream.
Salvar verifica o formato de cada campo e não contata o bucket. Uma chave errada ou uma capability ausente aparece apenas como um envio que falhou. Uma ativação entra em vigor depois de um a dois minutos. Se o stream usa sampling, salvá-lo como ativo desativa todos os outros streams da conta; um filtro de workloads os mantém ativos.
Confirme a entrega
Um stream envia um lote a cada 60 segundos, ou antes, quando chega a 2.000 linhas de log. Duas verificações confirmam a entrega: o objeto no bucket e o envio que o Real-Time Events registra.
Encontre o objeto no bucket
O nome de cada objeto é o Object Key Prefix, uma /, a data e a hora do envio no formato YYYY/MM/DD/hh/mm/ e um UUID. O Data Stream adiciona a / depois do prefixo.
Para listar os objetos do bucket com a API, envie uma requisição GET ao bucket. Substitua <your-bucket> pelo nome do seu bucket:
A API responde 200 com uma entrada por objeto, cada uma com a chave, o horário e o tamanho em bytes dele:
A chave começa com o prefixo activity, seguido da data e da hora do envio, o que confirma que o stream entregou um lote.
Leia o envio no Real-Time Events
O Real-Time Events registra cada envio de um stream, entregue ou não, com o código de status que o endpoint retornou.
Para ler os envios com a API, consulte o dataset dataStreamedEvents da API GraphQL do Real-Time Events. Substitua as datas por um intervalo que cubra a alteração do stream:
A API responde 200 com um registro para cada envio, o mais recente primeiro:
Um statusCode 200 significa que o bucket aceitou o lote, e streamedLines e dataStreamed dão o tamanho dele em linhas de log e em bytes. Uma lista dataStreamedEvents vazia significa que o stream não enviou no intervalo. Para cada campo, consulte Campos da API GraphQL do Real-Time Events.
Um objeto sob o prefixo e um envio com o status 200 juntos confirmam a entrega. Um status 503 significa que o Data Stream encontrou o endpoint indisponível. Com o Object Storage, verifique primeiro se a credencial traz listAllBucketNames e listBuckets. Para as causas, consulte Solucionar problemas de Data Stream.