Data Connect hizmetlerini ve veritabanlarını yönetme

Data Connect projeleriniz iki ana altyapı öğesinden oluşur:

  • Bir veya daha fazla Data Connect hizmet örneği
  • Bir veya daha fazla PostgreSQL için Cloud SQL örneği

Bu kılavuzda, Data Connecthizmet örneklerinizin nasıl oluşturulacağı ve yönetileceği ele alınmakta, ayrıca ilişkili Cloud SQL örneklerinizin nasıl yönetileceği açıklanmaktadır.

Firebase Data Connect için bölgeleri yapılandırma

Data Connect kullanan projeler için konum ayarı gerekir.

Yeni bir Data Connect hizmet örneği oluşturduğunuzda hizmetin konumunu seçmeniz istenir.

Kullanılabildiği yerler

Data Connect hizmetleri aşağıdaki bölgelerde oluşturulabilir.

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • australia-southeast2
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • europe-west8
  • europe-west9
  • me-west1
  • northamerica-northeast1
  • northamerica-northeast2
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4

Data Connect hizmet örneklerini yönetme

Hizmet oluşturma

Yeni bir hizmet oluşturmak için Firebase konsolunu kullanın veya Firebase KSA'yı kullanarak yerel projeyi başlatın. Bu iş akışları yeni bir Data Connect hizmeti oluşturur.

Bu akışlar, aşağıdaki konularda da size yol gösterir:

  • Yeni bir Cloud SQL örneği için kaynak ayırma (ücretsiz katman)
  • Mevcut bir Cloud SQL örneğini Data Connect'e bağlama (Blaze planı)

Kullanıcıları yönetme

Data Connect, kullanıcı erişimini yönetmek için en az ayrıcalık ilkesine (her kullanıcıya veya hizmet hesabına gerekli işlevleri desteklemek için gereken minimum izinleri verme) ve rol tabanlı erişim denetimi (RBAC) (veritabanı izinlerini yönetmek için önceden tanımlanmış rollerle, güvenlik yönetimini basitleştirir) kavramını temel alan araçlar sağlar.

Proje üyelerini, projenizdeki Data Connect örneklerini değiştirebilecek kullanıcılar olarak eklemek için Firebase konsolunu kullanarak uygun önceden tanımlanmış kullanıcı rollerini seçin.

Bu roller, Kimlik ve Erişim Yönetimi (IAM)'ni kullanarak izin verir. Roller, izinlerin toplamıdır. Bir proje üyesine rol atadığınızda, söz konusu proje üyesine rolün içerdiği tüm izinleri vermiş olursunuz. Daha fazla bilgi için:

Belirli iş akışlarını etkinleştirmek için rolleri seçme

IAM rolleri, Firebase CLI iş akışlarını etkinleştirerek Data Connect projelerinizi yönetmenize olanak tanır.

CLI komutu, diğer iş akışı Gerekli roller
firebase init dataconnect
  • İzin yok (Cloud SQL örneği bağlanmadığında)
  • roles/cloudsql.admin (Cloud SQL örneği oluştururken)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • roles/cloudsql.admin
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • Hedef Cloud SQL örneğinde roles/cloudsql.admin
firebase dataconnect:sql:grant
  • Hedef Cloud SQL örneğinde roles/cloudsql.admin

Data Connect hizmetinin performansını izleme

Hizmet performansını anlayın

Hem Data Connect hizmetinin hem de PostgreSQL için Cloud SQL hizmetinin performansı deneyiminizi etkileyebilir.

  • PostgreSQL için Cloud SQL hizmetiyle ilgili olarak Kotalar ve sınırlar dokümanında yer alan genel yönergelere bakın.
  • Data Connect hizmetinde, sorguları çağırma ve yürütme hızınızı etkileyen GraphQL istekleri için kota vardır:

    • İstemci uygulaması bağlayıcılarından dakikada 6.000 istek olan genel proje başına kota.
    • Firebase Admin SDK ve REST API'den dakika başına 6.000 istek olan genel proje başına kota.
    • Kullanıcı başına dakika başına 1.200 istek kotası. Burada kullanıcı başına, sınırın istemci uygulamasından, Firebase Admin SDK'ten veya REST API'den tek bir IP adresi tarafından başlatılan istekler için geçerli olduğu anlamına gelir.

    Bu kota sınırlarıyla karşılaşırsanız ilgili kotayı ayarlamak için lütfen Firebase destek ekibiyle iletişime geçin.

Hizmet performansını, kullanımını ve faturalandırmayı izleme

İstekleri, hataları ve işlem oranlarını hem küresel olarak hem de işlem başına Firebase konsolunda izleyebilirsiniz.

Cloud SQL örneklerini yönetme

Ücretsiz deneme sınırlamaları

3 aylık ücretsiz deneme sürümünde aşağıdaki PostgreSQL için Cloud SQL özellikleri desteklenmez:

  • 15.x dışındaki PostgreSQL sürümleri
  • Mevcut PostgreSQL için Cloud SQL örneklerini kullanma
  • db-f1-micro'tan farklı makine katmanı
  • Depolama alanı, bellek ve CPU gibi örneğinizin kaynaklarını değiştirme
  • Okuma replikaları
  • Özel örnek IP adresi
  • Yüksek kullanılabilirlik (çok bölgeli); yalnızca tek bölgeli örnekler desteklenir
  • Enterprise Plus sürümü
  • Otomatik yedekleme
  • Otomatik depolama alanı artışı.

Cloud SQL örneklerini yönetme

Genel olarak, aşağıdaki iş akışlarını gerçekleştirmek için Google Cloud konsolunu kullanarak Cloud SQL örneklerinizi yönetebilirsiniz.

  • Cloud SQL örneklerini durdurma ve yeniden başlatma
  • Cloud SQL veritabanları oluşturma ve silme (örneklerde)
  • PostgreSQL veritabanı örneklerini işaretlerle başlatma ve çeşitli uzantıları kullanma
  • Google Cloud konsolundaki Cloud SQL gözlemlenebilirlik özellikleri ile performansı izleyin
  • IAM, gizli yönetici, veri şifreleme ve kimlik doğrulama proxy'si gibi özelliklerle Cloud SQL erişimini ve güvenliğini yönetin
  • Cloud SQL kullanıcılarını ekleme, silme ve yönetme.

Bu ve diğer iş akışları için PostgreSQL için Cloud SQL belgelerine bakın.

PostgreSQL kullanıcı rolleri verme

Data Connect, kullanıcı erişimini yönetmek için en az ayrıcalık ilkesine (her kullanıcıya veya hizmet hesabına gerekli işlevleri desteklemek için gereken minimum izinleri verme) ve rol tabanlı erişim denetimi (RBAC) (veritabanı izinlerini yönetmek için önceden tanımlanmış rollerle, güvenlik yönetimini basitleştirir) kavramını temel alan araçlar sağlar.

Bazı durumlarda, Data Connect tarafından yönetilen Cloud SQL veritabanına doğrudan, örneğin Cloud Run, Cloud Functions veya GKE'yi kullanarak seçtiğiniz bir SQL istemcisi üzerinden bağlanmak isteyebilirsiniz.

Bu tür bağlantıları etkinleştirmek için SQL izinlerini şu şekilde vermeniz gerekir:

  • Google Cloud konsolundan veya gcloud CLIroles/cloudsql.client
  • Firebase CLI'yi kullanarak gerekli PostgreSQL rolünü verme

Cloud SQL IAM rolünü atama

IAM rolü roles/cloudsql.client atamak için PostgreSQL için Cloud SQL ile çalışma hakkında bilgi edinmek üzere Roller ve izinler bölümüne bakın.

PostgreSQL rolleri verme

Firebase CLI'yi kullanarak firebase dataconnect:sql:grant komutuyla, projenizle ilişkili kullanıcılara veya hizmet hesaplarına önceden tanımlanmış PostgreSQL rolleri verebilirsiniz.

Örneğin, yazar rolü vermek için CLI'de şu komutu çalıştırın:

firebase dataconnect:sql:grant --role writer

Ayrıntılar için CLI referans kılavuzuna bakın.

Mevcut PostgreSQL için Cloud SQL veritabanlarını entegre etme

Varsayılan veritabanı sağlama ve yönetim akışı, projenizin yeni (boş) veritabanları kullandığını varsayar. firebase deploy işlevini çağırdığınızda Data Connect, yapılacak veritabanı şeması değişikliklerini gösterir ve onaylamanızın ardından tüm taşıma işlemlerini gerçekleştirir.

Mevcut (kullanılmayan) veritabanları için şemaları yönetmek üzere kendi iş akışınız olabilir ve taşıma işlemleri için Data Connect araçlarını kullanamazsınız. Ancak mobil ve web için SDK oluşturma, sorgu tabanlı yetkilendirme, istemci bağlantısı yönetimi ve daha fazlasından yararlanmak amacıyla veritabanınızı bir Data Connect projesinde kullanmak istiyorsunuz.

Bu bölümde, mevcut veritabanlarını Data Connect ile entegre etmeyle ilgili bilgiler verilmektedir.

uygulayarak Database Migration Service'i kullanabilirsiniz.

Mevcut bir veritabanını Data Connect projesine entegre etme

Mevcut bir veritabanını entegre etme iş akışı genellikle aşağıdaki adımları içerir:

  1. Firebase konsolunda Data Connect projesini ayarlarken örneği ve veritabanını seçin.
  2. Firebase CLI'yi kullanarak firebase dataconnect:sql:setup komutunu çalıştırın ve Data Connect'nin SQL taşıma işlemlerini yönetmesine izin verme seçeneğini reddedin.

    Özel araçlarınızın yönlendirmediği veritabanı şemasında değişiklikler yapılmasını önlemek için setup komutu, owner rolünü değil, uygun okuyucu ve yazar rollerini atar. setup komutu ve PostgreSQL rolleri hakkında daha fazla bilgiyi KSA referans kılavuzunda bulabilirsiniz.

  3. Veritabanı şemanızla eşleşen bir Data Connect GraphQL şeması yazın.

    GraphQL şemanızı, sorgularınızı ve mutasyonlarınızı yalnızca GraphQL şemanız PostgreSQL şemanızla uyumlu olduğunda dağıtabilirsiniz.

    Her iki şemayı da uyumlu hale getirmeyi kolaylaştırmak için firebase dataconnect:sql:diff komutunu sağlarız. Bu komut, veritabanınızı taşımak için gereken SQL ifadelerini sağlar. Bu aracı, GraphQL şemanızı mevcut veritabanı şemanızla eşleşecek şekilde iteratif olarak hassaslaştırmak için kullanabilirsiniz.

  4. Bundan sonra, yerel geliştirme ortamınızda GraphQL şemanız, sorgularınız ve mutasyonlarınız üzerinde hızlıca iterasyon yapabilirsiniz. Ardından, memnun kaldığınızda özel araçlarınızı ve akışlarınızı kullanarak PostgreSQL'e uygulayabileceğiniz SQL taşıma ifadelerini almak için firebase dataconnect:sql:diff'ü kullanabilirsiniz.

  5. Alternatif olarak, önce doğrudan PostgreSQL veritabanınızda değişiklik yapabilir, ardından bunları GraphQL şemanıza geri taşımayı deneyebilirsiniz. Şema değişikliklerinin desteklenmediği durumlar olabileceğinden GraphQL öncelikli yaklaşımı öneririz. Ayrıca, PostgreSQL şemanızı dağıtılan bağlayıcı sorgularıyla veya mutasyonla uyumsuz hale getiren değişiklikler dağıtırsanız bu bağlayıcılar çalışmayı durdurabilir veya hatalı davranabilir.