Azure Blob

Permite a configuração de um Azure Blob Storage como entrada do Firehose.

Parâmetros

Parâmetros aceitos para esse tipo de entrada:

CampoDescriçãoValor

azure_blob.container

Container com os arquivos

Tipo: string Obrigatório

azure_blob.prefix

Prefixo dos arquivos a serem lidos

Tipo: string

azure_blob.scanner

Permite a escolha de um leitor de arquivo

Tipo: object Valor padrão: -

azure_blob.scanner.type

Forma com a qual o documento deve ser lido

Tipo: enum[lines csv] Obrigatório Valor padrão: lines

azure_blob.scanner.lines

Configurações do scanner de tipo lines

Tipo: object Valor padrão: -

azure_blob.scanner.lines.max_buffer_size

Define o tamanho máximo do buffer para armazenar dados da linha

Tipo: integer Valor padrão: 65536

azure_blob.scanner.lines.custom_delimiter

Define um delimitador de linha para detectar o fim de uma linha

Tipo: string Valor padrão: '\n'

azure_blob.scanner.csv

Configurações do scanner de tipo csv

Tipo: object Valor padrão: -

azure_blob.scanner.csv.lazy_quotes

Se true, uma aspa pode aparecer num campo sem aspas e uma aspa não duplicada pode aparecer num campo com aspas.

Tipo: boolean Valor padrão: false

azure_blob.scanner.csv.parse_header_row

Se true, a primeira linha/row será usada como header

Tipo: boolean Valor padrão: true

azure_blob.scanner.csv.continue_on_error

Caso algum erro de parse, se deve ou não continuar lendo as próximas linhas

Tipo: boolean Valor padrão: false

azure_blob.scanner.csv.custom_delimiter

Define um delimitador customizado, em vez do padrão que usa vírgula

Tipo: string Valor padrão: ,

azure_blob.credential

Credenciais de acesso ao storage

Tipo: object Obrigatório

azure_blob.credential.storage_account

Nome da conta do storage

Tipo: string Obrigatório se storage_connection_string = ""

azure_blob.credential.storage_connection_string

String de conexão com o storage

Tipo: string

azure_blob.credential.storage_access_key

Chave de acesso ao storage

Tipo: string Obrigatório se (storage_connection_string = "" && storage_sas_token == "")

azure_blob.credential.storage_sas_token

Token de acesso ao storage

Tipo: string Obrigatório se (storage_connection_string = "" && storage_sas_token == "")

azure_blob.input_seed

Permite configurar um input stream que gera um evento para download de um arquivo específico

Tipo: object Valor padrão: -

azure_blob.input_seed.type

Tipo do input stream

Tipo: enum[KAFKA] Obrigatório

azure_blob.input_seed.parser

Parser a ser aplicado para transformar o evento proveniente do input stream usando Bloblang

Tipo: object Valor padrão: -

azure_blob.input_seed.parser.mapping

Mapeamento Bloblang para realizar a transformação

Tipo: string Obrigatório

azure_blob.input_seed.kafka.addresses

Endereços do cluster

Tipo: []string Obrigatório

azure_blob.input_seed.kafka.topics

Tópicos para consumo das mensagens

Tipo: []string Obrigatório

azure_blob.input_seed.kafka.consumer_group

Grupo de consumo

Tipo: string Obrigatório

azure_blob.input_seed.kafka.tls

Configuração de TLS

Tipo: object Obrigatório

azure_blob.input_seed.kafka.tls.enabled

Habilitar TLS

Tipo: boolean Obrigatório

azure_blob.input_seed.kafka.tls.skip_cert_verify

Ignorar verificação de certificado

Tipo: boolean Obrigatório

azure_blob.input_seed.kafka.sasl

Configuração de autenticação

Tipo: object Obrigatório

azure_blob.input_seed.kafka.sasl.mechanism

Mecanismo de autenticação

Tipo: enum[NONE PLAIN] Obrigatório

azure_blob.input_seed.kafka.sasl.user

Identificador de acesso

Tipo: string Obrigatório se mechanism = PLAIN

azure_blob.input_seed.kafka.sasl.password

Senha de acesso

Tipo: string Obrigatório se mechanism = PLAIN

Requisição

curl --location '<HOST>/v1/configs' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: <ACCESS-TOKEN>' \
  --data '{
    "input": {
      "type": "AZURE_BLOB",
      "azure_blob": {
        "container": "CONTAINER",
        "scanner": {
          "type": "csv",
          "csv": {
            "custom_delimiter": ";"
          }
        },
        "credential": {
          "storage_connection_string": "CONNECTION-STRING"
        }
      },
      "input_seed": {
        "type": "KAFKA",
        "kafka": {
          "addresses": [
            "ADDRESS"
          ],
          "topics": [
            "TOPIC"
          ],
          "tls": {
            "enabled": "true",
            "skip_cert_verify": "true"
          },
          "sasl": {
            "mechanism": "PLAIN",
            "user": "USER",
            "password": "PASSWORD"
          }
        },
        "parser": {
          "mapping": "root.name = this.name"
        }
      }
    },
    "output": {...}
  }'

Obs: Caso a credencial de conexão com o Kafka seja uma connection string é possível se autenticar configurando o campo user como $ConnectionString e passando a connection string no campo password.

Resposta

A resposta desse endpoint será no seguinte formato:

{
  "id": "FIREHOSE-ID",
  "input": {
    "type": "AZURE_BLOB",
    "azure_blob": {
      "container": "CONTAINER",
      "scanner": {
        "type": "csv",
        "csv": {
          "custom_delimiter": ";"
        }
      },
      "credential": {
        "storage_connection_string": "CONNECTION-STRING"
      }
    },
    "input": {
      "type": "KAFKA",
      "kafka": {
        "addresses": [
          "ADDRESS"
        ],
        "topics": [
          "TOPIC"
        ],
        "tls": {
          "enabled": "true",
          "skip_cert_verify": "true"
        },
        "sasl": {
          "mechanism": "PLAIN",
          "user": "USER",
          "password": "PASSWORD"
        }
      },
      "parser": {
        "mapping": "root.name = this.name"
      }
    }
  },
  "output": {...}
}

Limitações

O input stream só permite a leitura de um arquivo específico do storage, dessa forma, o evento proveniente do input stream precisa ter o campo name com o nome do arquivo a ser lido. Não é necessário que o evento já possua esse campo, é possível aplicar uma transformação no payload do evento usando o azure_blob.input_seed.parser adicionando esse campo.

Last updated