Cloud DB’yi Cloud Functions üzerinden yönetin
Tanıtım
Bu makalede Cloud DB’yi server kullanmadan, Cloud Functions’dan nasıl yönetebileceğimizi göreceğiz.
Cloud Function Nedir?
Cloud Functions, sunucusuz bilgi işlem sağlar. Hizmet mantığını işlevlere bölerek uygulama geliştirmeyi ve işletme ve bakımı basitleştirmek için hizmet olarak işlev (FaaS) yetenekleri sağlar ve uygulama işlevlerinizin daha kolay uygulanabilmesi için Cloud DB ve Cloud Storage ile çalışan Cloud Functions SDK’yı sunar. Cloud Functions, gerçek trafiğe dayalı olarak işlevleri otomatik olarak genişletir veya küçültür, sizi sunucu kaynak yönetiminden kurtarır ve maliyetleri düşürmenize yardımcı olur.
Başlarken
Cloud DB tablosu ve Nesneleri oluşturduğunuzu varsayıyorum. Eğer oluşturmadıysanız Cloud DB Belgelerini okuyabilir ve adımları takip edebilirsiniz. Bu makalede sadece Cloud Function Server Uygulamasına odaklanacağız.
Cloud Function ile Cloud DB’yi nasıl yönetebilirz?
Projenizi Oluşturma ve Uygulama Ekleme, Eğer AppGallery Connect’te proje eklemediyseniz, AppGallery Connect’te oturum açın, bir proje oluşturun ve projeye bir uygulama ekleyin. Ayrıntılar için lütfen Android’e Başlarken bölümüne bakın.
1- Cloud Function’ın aktive edilmesi
- AppGallery Connect’te oturum açın ve My projects’e tıklayın.
- Proje listesinden Bulut İşlevlerini etkinleştirmeniz gereken projenizi bulun.
- Build > Cloud Functions ‘a tıklayın ve sağ üst köşedeki Enable now butonuna tıklayın.
4. Varsayılan veri işleme konumunu ayarlamadıysanız, görüntülenen iletişim kutusunda ayarlayın ve Tamam’a tıklayın. Ayrıntılar için lütfen Varsayılan Veri İşleme Konumunu Ayarlama bölümüne bakın.
Artık Cloud Function oluşturmaya hazırız, ancak önce Cloud Function’a yüklemek için Cloud DB Server paketine sahip olmalıyız.
Not: Eğer Cloud DB’yi Cloud Function üzerinden yönetmek istiyorsanız edit code inline seçeneğini kullanamazsınız, bu durumda .zip dosyası yükle seçeneğini kullanmalısınız. Aslında bu .zip dosyası Cloud DB sunucu uygulamasıdır.
2- Cloud DB Sunucu Paketinin oluşturulması
Sunucu kodu JavaScript olarak kodlanmalıdır. Kodlamadan sonra, Cloud Function’a yüklemek için bir .zip paketi oluşturacağız. .zip paket içeriği aşağıdaki gibi olmalıdır.
handler.zip
— — handler.js
— — node_modules
— — — — async
— — — — async-listener
Geliştirme Ortamının Yapılandırılması
1- Proje Düzeyinde Kimlik Bilgisine başvurarak bir kimlik doğrulama bilgisi ekleyin. Ve agc-apiclient-*.json kimlik bilgisi dosyasını sunucunuzda belirtilen yola kaydedin. Dosya, SDK başlatma sırasında kullanılacaktır.
2- Eğer package.json dosyasına sahip değilseniz, dosyayı oluşturmak için projenizin kök dizininde aşağıdaki komutu çalıştırın.
3- AppGallery Connect Server SDK’yı projenize entegre etmek için aşağıdaki komutu çalıştırın. Bu komutu çalıştırdıktan sonra proje klasöründe node_models oluşturulacaktır.
4- AGC modülünü projenize ekleyin.
Cloud DB’deki Tabloların Projeye Aktarılması
Cloud DB’de oluşturduğunuz tabloları JS olarak dışa aktarın ve proje klasörüne ekleyin. File format’ın JS, File Type of js ‘inde serverSDK olarak seçili olduğuna emin olun. Ayrıntılar için Nesne Tiplerinin dışa aktarılması’n göz atabilirsiniz.
Başlarken
Nesne tipi dosyaları ekledikten sonra sunucu üzerinde servis geliştirmeye başlayabilirsiniz. Sunucuda bir hizmet geliştirmeden önce, AGCClient’i başlatın, veri işlemlerinin gerçekleştirildiği bir Bulut Veritabanı bölgesi adı ayarlayın ve Bulut Veritabanı bölgesi örneğini edinin.
1- AGCClient’in başlatılması
2- AGConnectCloudDB örneğinin başlatılması, Cloud DB Zone Name’in set edilmesi ve Cloud DB Zone örneğinin çağrılması
Cloud DB’ye verinin eklenmesi
Serverdan server SDK ile Cloud DB’ye aşağıdaki şekilde veri eklemesi veya güncellemesi yapabilirsiniz.
Cloud DB’den verinin çekilmesi
executeQuery() methodu ile Cloud DB’ye sorgu gönderebilirsiniz.
Verileri azalan düzende sıralamak ve görüntülenecek veri kayıtlarını sınırlamak için sorgu methodunu orderByDesc() ve limit() methodlarıyla birleştirebilirsiniz.
Opsiyonel: Eğer sorgudan dönen sonucu logda görmek istiyorsanız processQueryResult fonksiyonunu kullanabilirsiniz.
● Şimdi klasör yapısına ve handler.js ,CloudDBZoneWrapper.js dosyalarının en son haline bir göz atalım. Aşağıdaki yapıyı referans alabilirsiniz.
● Klasör yapısı kontrolünden sonra, server paketini oluşturmak için bütün dosya ve klasörleri seçerek sağ tıklayın ve Arşiv’e ekle seçeneğinden .zip formatında arşivleyin.
Böylece Cloud Function’a upload edeceğimiz handler.js dosyasını oluşturmuş olduk.
3- Oluşturulan Paketin Cloud Function’a Yüklenmesi
AG Connect sayfasından > My Project > Build > Cloud Functions sayfasından New Function butonuna tıklayın.
- Yaratacağınınz fonksiyonun ismini yazın.
- Daha önce yarattığımız .zip uzantılı dosyayı yükleyin
- Bu kısım çok önemli, handler bizim .zip uzantılı dosyamızın ismi, myHandler ise bizim ana methodumuz.
4. Save butonuna tıklayın ve işlem bitene kadar bekleyin.
4- Cloud Function Paketinin Test Edilmesi
- Bir önceki bölümde oluşturduğunuz fonksiyon ismine tıklayın.
2. İstediğiniz herhangi bir tetikleyici ekleyebilirsiniz, ben burada Cron Trigger’ı ekliyorum, Cron Trigger belirlediğimiz periyotlarda otomatik olarak Server Kodunu çalıştırıyor.
3. Test butonuna tıklayın.
Kod başarılı bir şekilde çalıştığında log aşağıdaki gibi olur.
Note: Eğer herhangi bir log görmüyorsanız, muhetemelen kodda bir syntax hatası veya exception hatası vardır. Bu sorunu çözebilmek için bütün fonksiyon dönüşlerini try {} catch{} bloğuna alın ve hata mesajını bastırın. Kodu kontrol edin ve gerekirse her satıra adım adım log koyup ekrana yazıdırın ve en son haliyle paketi tekrar yükleyerek kodun başarılı bir şekilde çalışmasını sağlayın.
Sonuç
Cloud DB server paketinin nasıl oluşturulduğunu gördük, oluşturulan paketi Cloud Function’a yükledik ve çalıştırdık. Böylece fiziksel bir server’a ihtiyaç duymadan bütün işlemleri Cloud Function üzerinden tamamladık.
Okuduğunuz için teşekkürler…