Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
CI/CD işlem hattı, kod incelemesi ve otomatik dağıtım aracılığıyla aracınızda yapılan her değişikliği çalıştırdığından üretim dağıtımları herhangi bir geliştiricinin dizüstü bilgisayarına bağımlı olmaz. İşlem hattı yapılandırıldıktan sonra ana dalınıza yapılan her birleştirme Databricks Apps'te aracınızı dağıtır ve yeniden başlatır.
Bu sayfa aracıya özgü parçaları kapsar. GitHub Actions ile Databricks Uygulamaları için CI/CD, temel iş akışı kurulumunu açıklar: iş yükü kimliği federasyonu, GitHub ortamı ve dağıtım YAML dosyası. Önce bu sayfayı tamamlayın, ardından aracı uygulamalarına uygulanan eklemeler için buraya dönün.
Gereksinimler
- OpenAI Aracıları SDK'sı, LangGraph veya özel bir çerçeve kullanılarak Databricks Uygulamalarına en az bir kez dağıtılan bir aracı uygulaması. Bkz. Bir yapay zeka aracısı yazma ve Databricks Uygulamalarında dağıtma.
- GitHub Actions federasyon ilkesine ve uygulamada
CAN MANAGEsahip bir hizmet sorumlusu. Bkz . 1. Adım. İş yükü kimlik federasyonu yapılandırma. - Databricks CLI yerel olarak yüklenir ve kimliği doğrulanır. Bkz. Databricks CLI'yı yükleme veya güncelleştirme.
1. Adım. Başlangıç iş akışını kullanma
databricks/app-templates içindeki çeşitli aracı şablonları kullanıma .github/workflows/deploy.ymlhazır bir gönderir, böylece iş akışını sıfırdan yazmanız gerekmez.
-
databricks/app-templates'dan, örneğin
agent-langgraphveyaagent-openai-agents-sdkgibi bir ajan şablonu seçin. - Kopyalanan şablon dizininizde var olup olmadığını
.github/workflows/deploy.ymldenetleyin. - İş akışını ayarlayın:
-
deploy.ymlvarsa: Onu açın,databricks bundle runadımının paketinizindatabricks.ymliçindeki kaynak anahtarına başvurduğunu doğrulayın ve dosyanın üstbilgi yorumundaki önkoşulları izleyin. -
deploy.ymlyoksa: Bunu, mevcut olan bir şablondan veya 4. Adım: Dağıtım iş akışını ekleyin bölümünden kopyalayın. Ardındandatabricks bundle run <key>adımını, paketinizin kaynak anahtarıyla eşleşecek şekilde güncelleştirin.
-
2. Adım. MLflow deneme kimliğini önceden doldurma
Aracı şablonları, MLFLOW_EXPERIMENT_ID içinde databricks.yml alanını boş bırakır.
quickstart betik bunu ilk kurulumda yerel olarak doldurur, ancak yeni bir CI çalıştırıcısı doldurmaz.
experiment_id boşsa, databricks bundle deploy bir Terraform tür hatasıyla (For input string: "") başarısız olur.
Bunu düzeltmek için doldurulan değeri kaydedin:
-
uv run quickstart --profile <your-profile>aracıyı yazdığınız makinede yerel olarak çalıştırın. -
databricks.ymliçindeki deneme kaynağının (name: 'experiment'altındakiresources.apps.<key>.resourcesgirdisinin) artık sayısal birexperiment_iddeğeri olduğunu doğrulayın. - Değişikliği kaydedin.
Deneme çalışma alanı kapsamında olduğundan, bu çalışma alanını hedefleyen her CI dağıtımı için aynı kimlik geçerlidir. Birden çok çalışma alanına dağıtım yapıyorsanız, databricks.yml içinde hedef başına bir deney tanımlayın (her targets.<env> bloğu için bir tane) veya bir paket değişkeni kullanın.
Lakebase bellek şablonları için Postgres izinleri verme
Gelişmiş ajan şablonları (agent-langgraph-advanced, agent-openai-advanced), otomatik ölçeklenen bir Lakebase Postgres kaynağını doğrudan databricks.yml içinde tanımlar. Databricks CLI v0.295.0 ve üzeri sürümleriyle, databricks bundle deploy uygulamanın yanı sıra kaynağı da sağlar.
DAB postgres kaynağı, uygulamanın hizmet aslına Lakebase projesine çalışma alanı düzeyinde erişim sağlar, ancak Lakebase veritabanı erişimi için ayrı bir Postgres rolü katmanı tutar (şemalar, tablolar ve diziler). Ajanın bellek tablolarını okuyup yazabilmesi için, service principal’ın öncelikle doğru ayrıcalıklara sahip bir Postgres rolüne sahip olması gerekir. bkz. İki katmanlı model için kimlik doğrulama mimarisi .
Bu Postgres düzeyi ayrıcalıkları vermek tek seferlik bir kurulumdur. İlk bundle deploy ve bundle runarasında yerel olarak çalıştırın. Hizmet sorumlusunun Postgres rolü uygulamanın ömrü boyunca geçerliliğini koruduğundan, CI bu akışın ardından standart deploy ardından run yolundan yeniden dağıtılır.
Lakebase kaynağını sağlamak için paketi dağıtın:
databricks bundle deploy --target prodHizmet sorumlusuna ihtiyaç duyduğu Postgres düzeyi ayrıcalıkları verin:
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>LangGraph şablonu için
--memory-type langgraphiletin. Betik ayrıca otomatik ölçeklendirmeli Lakebase için--project <project> --branch <branch>veya tahsis edilmiş Lakebase için--instance-name <name>seçeneğini de destekler.Uygulamayı başlatın:
databricks bundle run <bundle-key> --target prod
Adım 3. Dağıtılan aracıda duman testi
databricks bundle run çalıştırıcı aracıya başlatma sinyali verir vermez döndürür, ancak aracı işlemi önyükleme sırasında yine başarısız olabilir.
5. Adım: Uygulamanın sağlıklı olmasını bekleyin bölümündeki durum denetiminden sonra, deploy.yml konumuna bir canary isteği gönderen aşağıdaki smoke test adımını /invocations bölümüne ekleyin:
- 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 Uygulamaları çağrı için yalnızca OAuth belirteçlerini kabul eder.
databricks auth token içindeki çalışma alanı OAuth belirtecini kullanın; Databricks Apps diğer tüm belirteç türlerini reddeder.