Você está perguntando sobre a nova atualização do ...
# ask-community
m
Você está perguntando sobre a nova atualização do Prefect — aqui vai um resumo rápido do que chegou na 3.4.23 (lançada em 09/Out/2025): Principais novidades - Suporte a contextos SSL personalizados no cliente Prefect. PR #19106 - (Anunciado) Novo comando de CLI
prefect api
para acessar o API diretamente. PR #19131 - Correções: - Suporte ao parâmetro
day_or
em cron schedules. PR #19121 - Outras correções em cancelamento assíncrono e serialização de bundles. - Docs: exemplos e links de integrações atualizados (inclui exemplo de dashboard ATProto com Prefect Assets). PR #18984 Changelog completo: 3.4.22 → 3.4.23 Como usar as novidades 1) Cliente com SSL customizado Em Prefect 3.x você pode passar um
ssl.SSLContext
via
httpx_settings
para o cliente:
Copy code
import ssl
from prefect.client.orchestration import PrefectClient, SyncPrefectClient

# Crie/ajuste seu SSLContext (ex.: CA customizada)
ctx = ssl.create_default_context(cafile="/path/to/ca-bundle.pem")
ctx.minimum_version = ssl.TLSVersion.TLSv1_2

# Assíncrono
async with PrefectClient(
    api="<https://api.prefect.cloud>",
    api_key="YOUR_API_KEY",
    httpx_settings={"verify": ctx},
) as client:
    # faça chamadas via client.* ...

# Sincrono
with SyncPrefectClient(
    api="<https://api.prefect.cloud>",
    api_key="YOUR_API_KEY",
    httpx_settings={"verify": ctx},
) as client:
    # faça chamadas via client.* ...
Observações: -
httpx_settings["verify"]
aceita
True/False
, caminho para CA bundle ou um
ssl.SSLContext
(recomendado para controle fino). - A assinatura de
PrefectClient
confirma o parâmetro
httpx_settings
. 2) Cron schedules com
day_or
Confirmamos que
prefect.schedules.Cron
expõe
day_or: bool=True
. Use assim:
Copy code
from prefect.schedules import Cron

# OR (padrão): dispara se dia-do-mês OU dia-da-semana bater
sched_or = Cron("0 9 * * MON,FRI", timezone="UTC", day_or=True)

# AND: dispara somente se ambos baterem (dia-do-mês E dia-da-semana)
sched_and = Cron("0 9 1 * MON", timezone="UTC", day_or=False)
Dica: se você precisa de
day_or=False
, crie o Schedule explicitamente e passe no deploy:
Copy code
from prefect import flow
from prefect.schedules import Cron

@flow
def my_flow():
    ...

schedule = Cron("0 9 1 * MON", day_or=False, timezone="UTC")

my_flow.deploy(
    name="my-deployment",
    schedule=schedule,
)
Docs gerais de schedules: Schedules 3) Sobre o novo comando
prefect api
- Os release notes mencionam um novo comando
prefect api
. No entanto, ao checar a ajuda local do CLI vimos “No such command 'api'”. - Isso pode indicar que: - sua instalação local ainda não está em 3.4.23, ou - o comando está sendo gradualmente disponibilizado/ajustado. - Por favor, confirme sua versão com:
Copy code
prefect version
prefect --help
- Se precisar atualizar:
Copy code
pip install -U prefect
Enquanto isso, você pode interagir com o API diretamente via Python:
Copy code
import ssl, httpx

api_url = "<https://api.prefect.cloud/api>"  # ajuste conforme necessário
api_key = "YOUR_API_KEY"

ctx = ssl.create_default_context(cafile="/path/to/ca-bundle.pem")
headers = {"Authorization": f"Bearer {api_key}"}

r = httpx.get(f"{api_url}/flows", headers=headers, verify=ctx)
r.raise_for_status()
print(r.json())
Quer que eu detalhe algum desses pontos (CLI, schedules ou segurança/SSL) em português mais a fundo? Também posso ajudar a aplicar isso no seu projeto atual.