Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
CI/CD pipeline zajistí, že každá změna vašeho agenta projde code review a automatizovaným nasazením, takže nasazení do produkce nezávisí na notebooku žádného konkrétního vývojáře. Jakmile je pipeline nakonfigurována, každé sloučení do hlavní větve nasadí a restartuje vašeho agenta v aplikaci Databricks Apps.
Tato stránka popisuje části specifické pro agenta. CI/CD for Databricks Apps s GitHub Actions dokumentuje základní nastavení pracovního postupu: federaci identit úloh, prostředí GitHub a nasazení YAML. Nejprve dokončete tuto stránku a pak se sem vraťte kvůli doplňkům, které se vztahují na aplikace agentů.
Požadavky
- Aplikace agenta nasazená alespoň jednou v Databricks Apps pomocí sady OpenAI Agents SDK, LangGraph nebo vlastní architektury. Viz Vytvoření agenta AI a jeho nasazení v Databricks Apps.
- Instanční objekt služby se zásadou federace GitHub Actions a
CAN MANAGEv aplikaci. Viz krok 1. Konfigurace federace identit úloh - Lokálně nainstalované a ověřené rozhraní Databricks CLI. Viz Instalaci nebo aktualizaci rozhraní příkazového řádku Databricks.
Krok 1. Použijte výchozí pracovní postup
Několik šablon agentů v databricks/app-templates dodává připravenou k použití .github/workflows/deploy.yml, takže pracovní postup nemusíte psát úplně od začátku.
- Vyberte šablonu agenta z databricks/app-templates, například
agent-langgraphneboagent-openai-agents-sdk. - V adresáři klonované šablony zkontrolujte, jestli
.github/workflows/deploy.ymlexistuje. - Nastavte pracovní postup:
-
Pokud
deploy.ymlexistuje: Otevřete ho, ověřte, že krokdatabricks bundle runodkazuje na klíč prostředku vašeho balíčku zdatabricks.yml, a postupujte podle předpokladů uvedených v komentáři v záhlaví souboru. -
Pokud
deploy.ymlneexistuje: Zkopírujte ho ze šablony, kde existuje, nebo z Kroku 4. Přidejte pracovní postup nasazení. Potom aktualizujte krokdatabricks bundle run <key>tak, aby odpovídal klíči prostředku vašeho balíčku.
-
Pokud
Krok 2. Předvyplňte ID experimentu MLflow
Šablony agentů ponechávají MLFLOW_EXPERIMENT_ID prázdné v databricks.yml. Skript quickstart jej při prvním nastavení doplní lokálně, ale nový CI runner nikoli. Pokud experiment_id je prázdný, databricks bundle deploy selže s chybou typu Terraform (For input string: "").
Pokud ji chcete opravit, potvrďte vyplněnou hodnotu:
- Spusťte
uv run quickstart --profile <your-profile>místně na počítači, na kterém jste vytvořili agenta. - Ověřte, že zdroj experimentu (
databricks.ymlpoložka sname: 'experiment'položkouresources.apps.<key>.resources) má nyní číselnou hodnotuexperiment_id. - Potvrďte změnu.
Experiment je omezen na pracovní prostor, takže stejné ID je platné pro každé nasazení CI směřující do daného pracovního prostoru. Pokud nasazujete do více pracovních prostorů, deklarujte v databricks.yml experiment pro každý cíl (jeden pro každý blok targets.<env>) nebo použijte proměnnou bundlu.
Udělení oprávnění Postgres pro šablony paměti Lakebase
Pokročilé šablony agentů (agent-langgraph-advanced, agent-openai-advanced) přímo v databricks.yml definují prostředek Lakebase Postgres s automatickým škálováním. S Rozhraním příkazového řádku Databricks v0.295.0 a novějším databricks bundle deploy zřídíte prostředek společně s aplikací.
Prostředek DAB postgres uděluje instančnímu objektu aplikace přístup k projektu Lakebase na úrovni pracovního prostoru, ale Lakebase udržuje samostatnou vrstvu role Postgres pro přístup k databázi (schémata, tabulky a sekvence). Instanční objekt služby potřebuje roli Postgres se správnými oprávněními předtím, než agent bude moct číst z jeho paměťových tabulek nebo do nich zapisovat. Viz Architektura ověřování pro dvouvrstvý model.
Udělení těchto oprávnění na úrovni Postgres je jednorázové nastavení. Spusťte ho místně mezi prvním bundle deploy a bundle run. CI se po tomto průchodu znovu nasadí standardní cestou deploy a poté run, protože role Postgres instančního objektu služby přetrvává po celou dobu životnosti aplikace.
Nasaďte balíček za účelem zřízení prostředku Lakebase:
databricks bundle deploy --target prodUdělte instančnímu objektu služby oprávnění na úrovni systému Postgres, která potřebuje:
uv run python scripts/grant_lakebase_permissions.py \ "$(databricks apps get <app-name> --output json | jq -r '.service_principal_client_id')" \ --memory-type openai \ --autoscaling-endpoint <endpoint>Pro šablonu LangGraph předejte
--memory-type langgraph. Skript také přijímá--project <project> --branch <branch>pro automatické škálování Lakebase nebo--instance-name <name>pro zřízené Lakebase.Spusťte aplikaci:
databricks bundle run <bundle-key> --target prod
Krok 3. Proveďte základní test nasazeného agenta
databricks bundle run se vrátí, jakmile runner dá agentovi signál ke spuštění, ale proces agenta může během spouštění stále selhat. Po kontrole stavu z kroku 5. Počkejte, až bude aplikace v pořádku, přidejte následující krok orientačního testu, do deploy.yml kterého publikuje kanárný požadavek na /invocations:
- name: Smoke test invocations
env:
APP_NAME: my-agent
run: |
APP_URL=$(databricks apps get "$APP_NAME" --output json | jq -r '.url')
TOKEN=$(databricks auth token | jq -r '.access_token')
STATUS=$(curl -sS -o /tmp/canary.json -w "%{http_code}" \
-X POST "$APP_URL/invocations" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"input": [{"role": "user", "content": "ping"}], "stream": false}')
if [ "$STATUS" != "200" ]; then
echo "Smoke test failed with status $STATUS:" >&2
cat /tmp/canary.json >&2
exit 1
fi
echo "Smoke test passed."
Note
Databricks Apps přijímá pouze tokeny OAuth pro vyvolání. Použijte token OAuth pracovního prostoru z databricks auth token: Databricks Apps odmítají jakýkoli jiný typ tokenu.