Descrição do processo de criação de pipelines no Data Lake.
Dockerfile
na raiz define a imagem base utilizada por todas as pipelines. Ele inclui as dependências essenciais para execução dos fluxos, como Python, Prefect, drivers de banco de dados e ferramentas auxiliares. Cada pipeline pode customizar sua própria imagem a partir desse Dockerfile base, garantindo consistência e facilidade de manutenção.
pyproject.toml
centralizado com uv workspaces: o pyproject.toml
na raiz do projeto gerencia as dependências Python de todas as pipelines utilizando uv workspaces.
pipelines/
representa um módulo Python independente, mas todos são importados automaticamente como membros do workspace.pyproject.toml
base são herdadas por todas as pipelines, facilitando a atualização e padronização do ambiente.pipelines/
são automaticamente reconhecidas e integradas ao workspace, sem necessidade de configuração manual adicional.Dockerfile
: imagem customizada para execução no Prefectflow.py
: definição dos fluxos Prefectprefect.yaml
: configuração do deployment Prefectpyproject.toml
: dependências específicas da pipelineDockerfile
de cada pipeline, assim como dependências específicas devem ser adicionadas no pyproject.toml
de cada pipeline.
O arquivo prefect.yaml
é responsável por definir as configurações de deployment do flow Prefect. Esse arquivo especifica variáveis de ambiente, parâmetros, agendamento, infraestrutura de execução e outras opções necessárias para o correto funcionamento do fluxo. O arquivo também é utilizado nos workflows de CI/CD para registrar e disponibilizar os flows.
Consulte a documentação oficial do Prefect para detalhes sobre todas as opções disponíveis.
cookiecutter
para facilitar a criação de novas pipelines de forma padronizada. Os templates disponíveis em templates/
permitem gerar rapidamente a estrutura de diretórios e arquivos necessários para uma nova pipeline Prefect, incluindo Dockerfile
, flow.py
, prefect.yaml
e pyproject.toml
.
Para criar uma nova pipeline, instale uv
e rode:
secretaria
e pipeline
, que serão utilizados para preencher os nomes dos diretórios, arquivos e variáveis nos templates.
.github/workflows/deploy-prefect-flows-prod.yaml
e .github/workflows/deploy-prefect-flows-staging.yaml
realizam o deploy automático dos flows Prefect para os ambientes de produção e staging, respectivamente.
master
ou manualmente, sempre que houver alterações em arquivos dentro de pipelines/**
.staging/*
ou manualmente, também monitorando alterações em pipelines/**
.ghcr.io
)uv
.github/scripts/deploy_prefect_flows.py
, que faz o deploy automático de todos os flows definidos em pipelines/*/prefect.yaml
.github/workflows/build-and-push-root-dockerfile.yaml
é acionado em alterações no Dockerfile
da raiz a cada push na branch master
, além de poder ser executado manualmente. Ele realiza:
Dockerfile
do repositórioghcr.io/${{ github.repository }}:latest
)