Lease yaşam döngüsü
Özet
- Bu sayfa, bir lease'i elle sürmenin operasyonel adım adım rehberidir: aç, kaynakları oluşturma anında damgala, deployment'ı bekle, saklayacaklarını promote et ve commit (her şeyi sakla) veya rollback (her şeyi at) ile kapat.
- Fiil yüzeyi
lease create→file link --lease→lease wait→lease promote→lease commit/lease rollback, artı operasyonel yardımcılarwait,debug,set-result,collect-outputs,list,deletevedelete-bulk'tur. - Yaygın durum için — bir manifest'ten canlı test çalıştırma —
ppl lease run --test=<manifest>tüm yaşam döngüsünü sizin için sürer. Aşağıdaki fiiller, manifest gramerinin kapsamadığı run'lar için daha düşük seviyeli yüzeydir. - Sahiplik modeli, fiil semantiği ve bu komutların arkasındaki TTL felsefesi için Leases bölümüne bakın.
Varsayılan tüketici: lease run
Bir live-test manifest'iniz olduğunda ve sadece çalışmasını istediğinizde bu modu kullanın.
ppl lease run --test=<manifest> --runtime=<id>, manifest'te tanımlı bir canlı test için tüm yaşam döngüsünü sürer, böylece yaygın tüketici fiillere doğrudan dokunmaz. Lease'i basar, lease ile damgalanmış aday component prerelease'ini yayınlar, lease ile damgalanmış her yerel fixture'ı yükler, live-test WebSocket'ini açar, build ve deploy olaylarını NDJSON olarak akıtır ve sonda lease'i otomatik geri alır. Exit kodu ready testinde 0 ve failed testinde 1'dir, bu da bir CI adımının ihtiyaç duyduğu şeydir.
Deployment'ın ayakta kalmasını istediğiniz keşif çalışması için — onu incelemek, çıktılarını toplamak ve elle commit veya rollback yapmaya karar vermek için — ppl lease run yerine ppl lease test kullanın. Aynı build'i eşzamanlı bir akış üzerinden sürer, ancak yalnızca runner'sız tek fazlı bir manifest kabul eder ve rollback yapmak yerine deployment'ı ready durumunda lease üzerinde bırakır. ppl lease run her zaman kendinden sonra temizlik yapar; CI'ın istediği de budur.
Manifest şeması ve tam olay akışı sözleşmesi için Canlı bir backend ile test etme bölümüne bakın.
Bir lease aç
Run, manifest tabanlı kısayolun uymadığı kadar özel olduğunda bunu kullanın.
Bir lease açmak, deployment'ın eninde sonunda çalışacağı runtime'ı, maksimum gözetimsiz ömrü ve lease'i daha sonra kolay bulunur kılan isteğe bağlı bir label'ı bildirir. Lease open durumunda başlar ve hemen damgalanmış Create'leri kabul eder:
ppl lease create --runtime <runtime_id> --ttl 30m --label q-faiss-live
Etiketlemek yapmaya değer. nightly_vector_index etiketli bir lease, daha sonra alt dize araması ile bulunabilir, label ön ekine göre toplu geri alınır ve takılı kalmış bir lease'in ne yaptığını tanımlar. Etiketsiz lease'ler aynı şekilde çalışır; temizlik sırasında tanınmaları yalnızca daha zordur.
TTL'i, beklenen en uzun run'ı rahatça karşılayacak şekilde seçin; platform bir varsayılan uygular ve fazla uzun değerleri kısıtlar. Run'dan daha kısa bir TTL, test hâlâ devam ederken sahte bir rollback üretir. --runtime, atlandığında yapılandırılmış default_runtime'a düşer ve --cleanup-policy varsayılan olarak delete_ephemeral_resources'tur — lease kapandığında sahip olunan kaynakları yerinde tutmak için retain_all geçin.
Kaynakları oluşturma anında damgala
Kaynağın lease ile ölmesi gerektiğinde bunu kullanın.
Bağımsız bir --lease bayrağı sunan tek komut ppl file link'tir:
ppl file link <source_uri> --lease <lease_id> --kind <source_kind> --type <file_type>
Backend'ler, deployment'lar, version'lar ve component'ler ppl lease run içinde otomatik olarak damgalanır — elle yazılan bir bayrak yok. Stamp-at-create kuralı ve mevcut bir satırı sonradan bir lease'e taşımanın neden bir yolu olmadığı için Leases bölümüne bakın.
Deployment'ın ayağa kalkmasını bekle
"Run hazır" durumunu bir sleep'e değil, gerçek runtime'a bağlamak için bunu kullanın.
Bir lease bir deployment tutar; deployment container'lar tutar; container'lar başlamak için sıfırdan farklı bir süre alır. ppl lease wait kapıdır: bir server-sent-events akışı açar, satır başına bir NDJSON olayı yazar ve lease hedef durumuna (deployed varsayılan olarak) ulaştığında 0, failed, timeout veya transport hatasında 1 ile çıkar.
ppl lease wait <lease_id> --until started --max-crashes 5 --timeout 15m
--until, "hazır"ın ne kadar katı olduğunu seçmenizi sağlar. started, deployment çalışır çalışmaz çıkar, stable (varsayılan), crash bütçesi kalmadan her container'ın running olmasını bekler. --max-crashes, container başına yeniden başlatma bütçesini ayarlar ve --timeout, tüm çağrı için duvar saati üst sınırıdır. Exit kodu, bir sonraki CI adımına aktardığınız şeydir.
Promote, sonra commit (veya rollback)
Lease'in bir belirli satırı, geri kalanı atılsa bile hayatta kalmalıysa Promote kullanın.
Her fiilin sahiplik modeline karşı ne anlama geldiği için Leases bölümüne bakın. Operasyonel olarak sıra şudur:
ppl lease promote <lease_id> --kind file --id <file_id>ppl lease commit <lease_id> # lease'te hâlâ olan her şeyi sakla, kapatppl lease rollback <lease_id> # lease'te hâlâ olan her şeyi at, kapat
Tipik kalıp şudur: bir canlı test çalışır, saklamaya değer bir generated artefakt (diyelim ki inşa edilmiş bir FAISS index) üretir, o tek dosyayı lease'ten Promote eder, sonra geri kalanını geri alır. Saklanan dosya hayatta kalır; aday component prerelease'i, test backend'i, geçici fixture'lar, deployment hepsi temizlenir.
Commit ve rollback, zaten kapatılmış lease'lerde idempotenttir. Kapatılmış bir lease'te ikisinden birini çağırmak bir no-op başarıdır — TTL otomatik rollback ile nadir yarışı özel olarak ele almak istemeyen temizlik script'leri için kullanışlıdır.
Toplu temizlik
Birçok lease'in bir kerede ölmesi gerektiğinde bunu kullanın.
Toplu rollback, tek bir çağrıda birçok lease'i kapatır — örneğin bir CI run'ından her başarısız lease. Filtreler AND ile birleşir ve sunucu boş bir filtre gövdesini reddeder, böylece bir yazım hatası workspace'teki her lease'i geri alamaz.
ppl lease rollback --bulk --older-than 24hppl lease rollback --bulk --failedppl lease rollback --bulk --runtime <runtime_id> --label-prefix nightly-
Gecelik temizlik kalıbı bir satır cron'dur — ve her lease ya commit etmiş (satırlarını saklamış) ya da geri alınmış (onları yok etmiş) olduğundan, peşinden koşulacak artık bir durum yoktur.
Toplu rollback, hâlâ açık olan lease'leri kapatır. Zaten kapatılmış lease'lerin satırlarını temizlemek için, ppl lease delete-bulk aynı filtre şeklini artı --status'u (kapalı durumlar rolled_back, failed, committed ile sınırlı) ve bir --dry-run önizlemesini alır ve asla açık bir lease'e dokunmaz.
ppl lease delete-bulk --closed-before 24hppl lease delete-bulk --status rolled_back --older-than 7d --dry-run
Başarısız bir lease'i debug et
Bir şey ters gittiğinde önce bunu kullanın.
ppl lease debug <lease_id> bir JSON paketi döndürür: lease, backend'i, deployment'ın durumu ve mesajı ve container başına bir durum / exit kodu / status mesajı. Bir lease başarısız olduğunda önce yapılacak tek çağrıdır — neredeyse her zaman bir sonraki adımın "container loglarını oku", "backend grafını düzelt ve yeniden dene" veya "runtime takılı" olup olmadığına karar vermek için yeterince söyler.
Bunu ppl lease set-result <lease_id> --status failed --json '{…}' ile eşleştirmek, yapılandırılmış bir sonucu ve debug paketini kapanışın ötesinde korur, bu da lease'in kendisi gittikten sonra sonradan incelemeyi mümkün kılan şeydir.
Bunun yeri
Bu sayfa, bir lease'i elle sürme komut sırasıdır; yüzeyi tutarlı kılan sahiplik modeli, fiil semantiği ve TTL felsefesi Leases bölümünde yaşar. Operasyonel yardımcılar — wait, debug, set-result, collect-outputs, list, delete, delete-bulk — yukarıdaki bölümlerde belgelenmiştir.
İlgili
- Canlı bir backend ile test etme — kanonik lease tüketicisi.
- Leases — bu komutların arkasındaki sahiplik modeli.
- Deploy et ve izle — ephemeral olmayan üretim deploy'ları.
- Runtime'lar ve düğümler — deployment'ın çalıştığı yer.
- Davranışı kanıtla — kanıt döngüleri için izolasyon sınırı olarak lease'ler.