deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Cloud Run gVisor sandbox ortamları, Apps Script'e izole Python ve Bash çalıştırmayı nasıl getiriyor

Bir dev.to eğitim yazısı, Google Apps Script'i Cloud Run gVisor sandbox ortamlarına bağlayarak güvenilmeyen Python ve Bash kodunun boşta maliyet sıfırken 200–450 ms içinde çalıştırılmasını sağlıyor.

Cloud Run gVisor sandbox ortamları, Apps Script'e izole Python ve Bash çalıştırmayı nasıl getiriyor

Workspace otomasyonları için bir sandbox sidecar'ı

dev.to'da yayınlanan bir eğitim yazısı, Google Apps Script'in Google Cloud Run Sandboxes'a nasıl bağlanacağını anlatıyor ve Workspace otomasyonlarına Python ve Bash kodunu çalıştırmak için hızlı, izole bir ortam sunuyor. Yazara göre, dinamik scriptler gVisor ile izole edilmiş container'lar içinde 200 ila 450 milisaniyede çalışıyor ve dağıtım boştayken hiçbir maliyet oluşturmuyor.

Bunun motivasyonu, Apps Script'in uzun süredir devam eden bazı kısıtlamaları. Standart hesaplarda runtime altı dakikayla sınırlı, ortam yalnızca V8 üzerinde JavaScript çalıştırıyor — bu da yerel Linux binary'lerini ve harici derleyicileri dışarıda bırakıyor — ve ele alınmayan tek bir exception tüm scripti durduruyor.

V8 ile LLM agent'ları arasındaki boşluk

Yazar, bu kurulumu mevcut iki seçenek arasında bir orta yol olarak konumlandırıyor. Düz Apps Script, bilimsel hesaplama veya shell işleri için fazla sınırlı. Öteki uçta, aynı yazarın önceki bir yazısı Apps Script'i, Gemini Managed Agents tarafından sağlanan ve Playwright scraping ve FFmpeg dönüştürme gibi ağır çok turlu iş akışlarını yürüten Linux sandbox'larına bağlamıştı.

Bu agent tabanlı yol, Interactions API üzerinden LLM prompt'larına dayanıyor; yazıya göre bu, yanıt sürelerini saniyelere ya da onlarca saniyeye çıkarıyor ve token kotalarını tüketiyor (yazar 200k TPM rakamına değiniyor). Pek çok günlük görev — aritmetik değerlendirme, dizi ayrıştırma, regex eşleştirme, shell komutları — belirlenimci olduğundan devrede bir LLM'den hiçbir şey kazanmıyor. Yazı, doğrudan, LLM'siz bir yürütme yolu inşa etme esinlenmesinin kaynağı olarak Romin Irani'nin Cloud Run Sandboxes üzerine uygulamalı rehberine atıf yapıyor.

Üç katman, tek HTTP çağrısı

Mimari üç bileşenden oluşuyor: Apps Script orkestratörü, ikinci nesil Cloud Run instance'larında çalışan bir FastAPI proxy runner ve gVisor izolasyon katmanı.

Yürütme üç aşamada ilerliyor. Apps Script önce kod parçacığını, dili (Python veya Bash), bir timeout ve güvenlik override bayraklarını içeren bir JSON payload ile HTTPS POST gönderiyor. FastAPI servisi daha sonra sandbox launcher'ı bir sandbox do komutuyla çağırarak duvar saati bazlı çalışma süresini, exit code'ları, stdout ve stderr'ı yakalıyor. Son olarak gVisor, konuk kodun yaptığı her sistem çağrısını yakılıyor.

Sandbox, halihazırda çalışan bir container içinde forklandığından ne soğuk VM önyüklemeleri var ne de prompt yükü; yazarın 200–450 ms'lik yürütme süresine ulaşmasının yolu bu. Script mantığındaki değişiklikler için de image yeniden derlemesi gerekmiyor: yeni kod yalnızca bir dize olarak gönderiliyor ve anında çalıştırılıyor.

Kontrolsüz kod ölümcül değil, kontrol altında. Devredilen bir script segfault yaparsa ya da sonsuz döngüde takılırsa, gVisor yalnızca child process'i SIGKILL ile sonlandırırken parent FastAPI runner sağlıklı kalıyor ve yapılandırılmış bir JSON hatası döndürüyor. Maliyet tarafında, min-instances değerini sıfıra ayarlamak Cloud Run'ın boştayken tamamen sıfıra ölçeklenmesini sağlıyor; yazar, Google Cloud'un Always Free katmanıyla birleştiğinde günlük otomasyon için boşta bakım maliyetinin sıfır olduğunu bildiriyor.

gVisor'ın gerçekte engellediği şeyler

Konuk sistem çağrılarını yakalayan bir uygulama çekirdeği gibi davranan sandbox, yazıya göre birkaç varsayılan kısıtlama uyguluyor:

  • 169.254.169.254 adresindeki Google Cloud Metadata Server'a erişim engelleniyor ve yaygın bir SSRF hedefi ortadan kalkıyor
  • Host ortam değişkenleri konuktan temizleniyor
  • Kök filesystem salt okunur
  • Harici ağ egress'i varsayılan olarak devre dışı

Apps Script'ten doğrulandı

Yazar, hem işlevselliği hem de güvenlik sınırlarını test etmek için doğrudan Apps Script'ten çalışan sekiz eksenli bir test seti oluşturdu. Belgelenen vakalar temel Python aritmetiğini (2**32, exit code 0 ile 4294967296 döndürüyor), sözdizimi hatası işlemeyi (kapatılmamış bir dize değişmezi, container'ı çökertmeden yapılandırılmış bir SyntaxError yanıtı üretiyor) ve iki saniyelik bir timeout altındaki sonsuz döngünün gVisor tarafından sonlandırıldığı bir hizmet reddi savunmasını kapsıyor. Kurulum ve dağıtıma ilişkin tam talimatlar projenin GitHub deposunda yer alıyor.

Neden önemli

Büyük dil modellerinin ürettiği kod tanım gereği güvenilmez; yazının temel savı, AI tarafından hazırlanmış scriptleri yürüten her otomasyon için sandbox'unun bir lüks değil bir ön koşul olduğu. gVisor'ı ölçeklene-sıfırlan Cloud Run fiyatlandırmasıyla eşleştirmek, bu izolasyonu yalnızca sürekli açık servisler için değil, aralıklı Workspace görevleri için de karşılanabilir kılıyor.

Tasarım, iş yükü türleri arasında faydalı bir çizgi de çiziyor: agent tabanlı, çok adımlı işler hâlâ Gemini Managed Agents'tan yararlanırken, belirlenimci hesaplama — rutin otomasyonun büyük kısmı — token harcaması olmadıkça saniye altı yürütmeye kavuşuyor. Uygulamada bu, Apps Script'i sınırlı bir JavaScript runtime'ından, native olarak asla çalıştıramayacağı Pandas ve Seaborn veri bilimi işlerini, karmaşık veri dönüştürmelerini ve shell iş yüklerini devredebilen bir orkestratöre dönüştürüyor.

  • #google-cloud
  • #apps-script
  • #gvisor
  • #sandboxing
  • #serverless

İlgili yazılar