Rede-DSBR / PNP

Repositório do Projeto da Plataforma Nilo Peçanha
0 stars 0 forks source link

Envio dos dados de acesso para bucket (s3, azure ?) de forma que possa ser consumida diretamente por painel no powerbi. #144

Closed Atzingen closed 8 months ago

Atzingen commented 8 months ago

@RedeDSBR O plano é que o monitor de acessos envie diáriamente os acessos em um formato csv, para que possa ser visualizado e usado por algum tipo de painel no powerbi. Vamos usar as ferramentas que já temos para isso (s3 e google storage) ou iremos já migrar para o azure ? Não é algo crítico, mas acho que seria interessante testar na azure. Nunca usei mas pela pesquisa que fiz é fácil envair arquivos para lá.

https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python?tabs=managed-identity%2Croles-azure-portal%2Csign-in-azure-cli

potyrlucena commented 8 months ago

Creio que não teremos grandes dificuldades para integrar os dados. A nuvem Azure está em processo de validação e é uma boa candidata.

Atzingen commented 8 months ago

Combinado ! vou criar um storage lá. O csv tem apenas alguns megas e o custo deve ser irrisório

Atzingen commented 8 months ago

Azure Storage blob criado -> Em portugues chama Container de armazenamento (!) Container de armazenamento monitor-pnp

É preciso gerar uma chave de acesso ou um token. Testado com sucesso via tokem embora seja necessário listar de que IP o acesso será permitido (ok pra uso em VMs)

Image

Código de exemplo para upload de um arquivo csv:

from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

sas_token = ""
container_name = "monitor-pnp"
blob_name = "teste.csv"
file_path = "Estados_Brasileiros_Codigos_ISO.csv"

blob_service_url = f"https://stpnpdev001.blob.core.windows.net/monitor-pnp?{sas_token}"
# blob_service_url = f"https://stpnpdev001.blob.core.windows.net/?{sas_token}"
blob_service_client = BlobServiceClient(account_url=blob_service_url, credential=None)

blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)

with open(file_path, "rb") as data:
    blob_client.upload_blob(data, overwrite=True)

print(f"File '{blob_name}' uploaded to Blob Storage.")