CAP · troubleshooting
mta.yaml: CAP’in BTP’de durduğu yer
CAP uygulaması BTP’ye MTA ile çıkar: srv, db, approuter, HTML5, XSUAA ve destination kaynakları yaml’de ilan edilir. Fiori Teknoloji “cf push yeter” alışkanlığını üretimde kabul etmez. Kırılan deploy’un çoğu yanlış kaynak adı veya eksik entitlement’tır.
Modüller ve kaynaklar
mta.yaml, srv modülünü Cloud Foundry uygulaması, db’yi HDI deployer, approuter’ı giriş kapısı, ui’yi HTML5 repo olarak tanımlar. resources altında xsuaa, dest, html5-apps-repo, hdi-container ve gerektiğinde connectivity durur. requires, modülün hangi kaynağı bind edeceğini söyler. Adlar subaccount’taki servis anahtarıyla uyumsuzsa uygulama kalkar ama destination boştur. Fiori Teknoloji dev ve test için ayrı MTA parametreleri kullanır; aynı yaml’e üretim URL’si gömülmez. Build parameters Node sürümü ve includes listesini kilitler. Unutulmuş ui5.yaml veya xs-app.json approuter yönlendirmesini kırar. Deploy log’unda “service not found” entitlement veya instance adı hatasıdır. Lisans satmayız; eksik servis müşteri hesabında açılır, sonra yaml bağlanır.
- srv, db, approuter ve ui ayrı modüllerdir
- xsuaa, destination ve HDI resources.requires ile bind edilir
- Ortam URL’si yaml’e gömülmez, parametreyle ayrılır
Sık deploy kırılmaları
Quota yetersizliği space’de bellek veya servis sayısı keser. XSUAA xs-security.json farkı rol koleksiyonunu eski bırakır; kullanıcı “giriş var karo 403” görür. Destination kaynak adı CAP cds.requires.destinations ile birebir olmalıdır. HDI deploy yetkisi yanlışsa db modülü düşer, srv ayakta kalır; Fiori boş veri gösterir. Fiori Teknoloji bu ayrımı log sırasıyla okur: önce MTA, sonra bind, sonra uygulama logu. Parallel deploy sırası bazen HTML5’i srv’den önce bitirir; ilk istek 404 verir, ikinci açılır. Retry üretim kanıtı değildir. Cloud Connector Location ID destination’da yanlışsa on-prem 502 döner. Bu yaml değil altyapı zinciridir; yine de destination tanımı yaml/cockpit tutarlılığı kontrol edilir.
- 403 çoğu zaman XSUAA rol koleksiyonu veya xs-app.json yoludur
- HDI düşüp srv ayaktaysa Fiori boş veri gösterir
- On-prem 502 önce Cloud Connector ve destination proxy type’dadır
CI ve ortam ayrımı
Aynı MTA, mtaext ile dev/test/prod parametre alır. Destination URL ve client id ortam dosyasındadır, git’e secret gitmez. Fiori Teknoloji pipeline’da build, deploy, smoke (metadata ve health) ister. Elle cockpit’ten “düzeltip” yaml’i güncellememek bir sonraki deploy’da regress üretir. Space rolü developer ile production operator ayrılır. Trial subaccount CI hedefi değildir. Hata ayıklamada cf logs ve cockpit metrics yeter; uydurma not numarası yoktur. Destek runbook’u hangi modülün hangi log’a gittiğini yazar. mta.yaml değişikliği Fiori işlevi kadar gözden geçirilir çünkü yayın sözleşmesidir. Approuter timeout, CAP handler timeout’tan ayrı ayarlanır. Yaml gözden geçirmesi Fiori ekran gözden geçirmesiyle aynı kapıdadır.
- mtaext ortam ayrımıdır; secret git’e girmez
- Cockpit elle düzeltmesi yaml’e dönmezse bir sonraki deploy ezer
- Smoke test: health, $metadata ve bir yetkili OData okuma
Sık sorulanlar
package.json yetmez mi, neden mta.yaml?
package.json Node paketidir. BTP’de XSUAA, destination, HDI ve HTML5 bağları MTA ile ilan edilir. Yerel cds watch MTA’sız çalışır; üretim hesabı çalışmaz.
Deploy oldu ama destination boş, ne bakılır?
Kaynak adı, bind, cockpit destination ve cds.requires eşleşmesi. On-prem ise proxy type OnPremise, Connectivity ve Cloud Connector Location ID. Yaml tek başına S/4’ü açmaz.
Bu konuyu ortamınızda netleştirmek için 48 saatlik ön değerlendirme.
Lisans satmıyoruz. Destination, yetki ve model kararını yazılı notlarız.