hızlı başlangıç: Azure Cosmos DB mongodb için apı 'sini kullanarak .net web apı 'si oluşturma

Uygulama hedefı: MongoDB için Azure Cosmos DB API

Bu hızlı başlangıçta nasıl yapılacağı gösterilmektedir:

  1. mongodb hesabı için Azure Cosmos DB apı 'si oluşturma
  2. MongoDB .net sürücüsünü kullanarak bir ürün kataloğu Web API 'si oluşturma
  3. Örnek verileri içeri aktar

Örnek uygulamayı çalıştırmak için önkoşullar

zaten Visual Studio yoksa, kurulum ile yüklenen ASP.NET ve web geliştirme iş yüküne sahip Visual Studio 2019 Community sürümünü indirin.

Veritabanı hesabı oluşturma

  1. Yeni bir tarayıcı penceresinde Azure portalında oturum açın.

  2. Sol taraftaki menüde kaynak oluştur' u seçin.

    Azure portal kaynak oluşturma ekran görüntüsü.

  3. yeni sayfada veritabanları > Azure Cosmos DB' nı seçin.

    Azure portal veritabanları bölmesinin ekran görüntüsü.

  4. apı seçeneğini seçin sayfasında mongodb Create için apı Azure Cosmos DB' yi seçin > .

    API, oluşturulacak hesap türünü belirler. mongodb için Azure Cosmos DB apı ' yi seçin. bu hızlı başlangıçta mongodb ile birlikte çalışarak bir koleksiyon oluşturacaksınız. daha fazla bilgi için bkz. mongodb için Azure Cosmos DB apı 'sine genel bakış.

    API seç seçenek bölmesinin ekran görüntüsü.

  5. Azure Cosmos DB hesabı oluştur sayfasında, yeni Azure Cosmos DB hesabının ayarlarını girin.

    Ayar Değer Açıklama
    Abonelik Abonelik adı Bu Azure Cosmos DB hesabı için kullanmak istediğiniz Azure aboneliğini seçin.
    Kaynak Grubu Kaynak grubu adı Bir kaynak grubu seçin veya Yeni oluştur seçeneğini belirleyin ve yeni kaynak grubu için benzersiz bir ad girin.
    Hesap Adı Benzersiz bir ad girin Azure Cosmos DB hesabınızı tanımlayan benzersiz bir ad girin. Hesap URI 'niz, benzersiz hesap adınızın Mongo.Cosmos.Azure.com eklenir.

    Hesap adı yalnızca küçük harf, sayı ve kısa çizgi (-) kullanabilir ve 3 ila 44 karakter uzunluğunda olmalıdır.
    Konum Kullanıcılarınıza en yakın bölge Azure Cosmos DB hesabınızın barındırılacağı coğrafi konumu seçin. Verilere en hızlı erişimi sağlamak için kullanıcılarınıza en yakın olan konumu kullanın.
    Kapasite modu Sağlanan aktarım hızı veya sunucusuz Sağlanan aktarım hızı modunda bir hesap oluşturmak için sağlanan aktarım hızı ' nı seçin. Sunucusuz modda bir hesap oluşturmak Için sunucusuz ' ı seçin.

    Note: sunucusuz hesaplar yalnızca MongoDB API sürümleri 4 ve 3,6 tarafından desteklenir. Sürüm, hesabı sağlanan aktarım hızı modunda zorlayacaktır. 3,2
    ücretsiz katman indirimi Azure Cosmos DB uygula Uygula veya Uygula Azure Cosmos DB ücretsiz katman sayesinde ilk 1000 RU/sn ve 25 GB depolama alanını hesapta ücretsiz olarak alırsınız. Ücretsiz katmanhakkında daha fazla bilgi edinin.
    Sürüm Gerekli sunucu sürümünü seçin mongodb için Azure Cosmos DB apı 'si sunucu sürümü 4,0, 3,6 ve 3,2 ile uyumludur. Oluşturulduktan sonra bir hesabı yükseltebilir veya indirgeyede olursunuz.

    Not

    Azure aboneliği başına en fazla bir ücretsiz katman Azure Cosmos DB hesabınız olabilir ve hesabı oluştururken kabul etmeniz gerekir. Ücretsiz katman indirimi uygulama seçeneğini görmüyorsanız bu, abonelikteki başka bir hesabın ücretsiz katmanla zaten etkinleştirildiği anlamına gelir.

    Azure Cosmos DB için yeni hesap sayfasının ekran görüntüsü.

  6. Genel dağıtım sekmesinde, aşağıdaki ayrıntıları yapılandırın. Bu hızlı başlangıç amacıyla varsayılan değerleri bırakabilirsiniz:

    Ayar Değer Açıklama
    Coğrafi Yedeklilik Devre Dışı Bırak Bölgenizi bir çift bölge ile eşleştirerek hesabınızda genel dağıtımı etkinleştirin veya devre dışı bırakın. Daha sonra hesabınıza daha fazla bölge ekleyebilirsiniz.
    Birden Çok Bölgeli Yazmalar Devre Dışı Bırak Çok bölgeli yazma özelliği, veritabanları ve iş parçacıklarınız için dünya genelindeki sağlanan aktarım hızı avantajlarından yararlanmanıza olanak sağlar.

    Not

    Kapasite modu olarak sunucusuz ' i seçerseniz aşağıdaki seçenekler kullanılamaz:

    • Ücretsiz Katman İndirimi Uygula
    • Coğrafi yedeklilik
    • Birden Çok Bölgeli Yazmalar
  7. İsteğe bağlı olarak, aşağıdaki sekmelerde ek ayrıntılar yapılandırabilirsiniz:

    • - bir sanal ağdan erişimiyapılandırın.
    • Yedekleme ilkesi - düzenli veya sürekli yedekleme ilkesi yapılandırın.
    • Şifreleme -hizmet tarafından yönetilen anahtar veya müşteri tarafından yönetilen bir anahtarkullanın.
    • Etiketler -Etiketler, birden fazla kaynağa ve kaynak grubuna aynı etiketi uygulayarak kaynakları kategorilere ayırmanıza ve birleştirilmiş faturalandırmayı görüntülemenize olanak tanıyan ad/değer çiftleridir.
  8. Gözden geçir ve oluştur’u seçin.

  9. Hesabın oluşturulması birkaç dakika sürer. Portalın Tebrikler görüntülemesini bekleyin ! mongodb hesabı için Azure Cosmos DB apı 'niz bir sayfa hazırlayın.

    Azure portal bildirimleri bölmesinin ekran görüntüsü.

Nesne modelini öğrenme

Uygulamayı oluşturmaya devam etmeden önce, MongoDB API 'sindeki kaynak hiyerarşisine ve bu kaynakları oluşturmak ve bunlara erişmek için kullanılan nesne modeline göz atalım. MongoDB için API, kaynakları aşağıdaki sırayla oluşturur:

  • mongodb hesabı için Azure Cosmos DB apı 'si
  • Veritabanları
  • Koleksiyonlar
  • Belgeler

varlıkların hiyerarşisi hakkında daha fazla bilgi edinmek için Azure Cosmos DB kaynak modeli makalesine bakın.

Örnek uygulama şablonunu yükler

Bu örnek, yerel bir kopya oluşturmak için yüklenebilen bir DotNet proje şablonudur. Komut penceresinde aşağıdaki komutları çalıştırın:

mkdir "C:\cosmos-samples"
cd "C:\cosmos-samples"
dotnet new -i Microsoft.Azure.Cosmos.Templates
dotnet new cosmosmongo-webapi

Önceki komutlar:

  1. Örnek için C:\cosmos-Samples dizinini oluşturun. İşletim sisteminiz için uygun bir klasör seçin.
  2. Geçerli dizininizi C:\cosmos-Samples klasörüne çevirin.
  3. Proje şablonunu, DotNet CLı 'dan küresel olarak kullanılabilir hale getirerek yükler.
  4. Proje şablonunu kullanarak yerel bir örnek uygulama oluşturun.

DotNet CLı 'yı kullanmak istemiyorsanız, proje şablonlarını BIR ZIP dosyası olarak da indirebilirsiniz. Bu örnek Templates/APIForMongoDBQuickstart-WebAPI klasöründe bulunur.

Kodu gözden geçirin

Aşağıdaki adımlar isteğe bağlıdır. Veritabanı kaynaklarının kodda nasıl oluşturulduğunu öğrenmek istiyorsanız aşağıdaki kod parçacıklarını gözden geçirin. Aksi takdirde, uygulama ayarlarını güncelleştirmekiçin ileri atlayın.

Bağlantı kurma

Aşağıdaki kod parçacığı Services/MongoService. cs dosyasından yapılır.

  • Aşağıdaki sınıf istemciyi temsil eder ve .NET Framework tarafından onu kullanan hizmetlere eklenir:

        public class MongoService
        {
            private static MongoClient _client;
    
            public MongoService(IDatabaseSettings settings)
            {
                _client = new MongoClient(settings.MongoConnectionString);
            }
    
            public MongoClient GetClient()
            {
                return _client;
            }
        }
    

Ürün Kataloğu veri hizmeti kurulumu

Aşağıdaki kod parçacıkları Hizmetler/ProductService. cs dosyasından alınır.

  • Aşağıdaki kod, veritabanını ve koleksiyonu alır ve henüz yoksa oluşturur:

    private readonly IMongoCollection<Product> _products;        
    
    public ProductService(MongoService mongo, IDatabaseSettings settings)
    {
        var db = mongo.GetClient().GetDatabase(settings.DatabaseName);
        _products = db.GetCollection<Product>(settings.ProductCollectionName);
    }
    
  • Aşağıdaki kod, benzersiz bir ürün tanımlayıcısı olan SKU 'ya göre bir belge alır:

    public Task<Product> GetBySkuAsync(string sku)
    {
        return _products.Find(p => p.Sku == sku).FirstOrDefaultAsync();
    }
    
  • Aşağıdaki kod bir ürün oluşturur ve onu koleksiyona ekler:

    public Task CreateAsync(Product product)
    {
        _products.InsertOneAsync(product);
    }
    
  • Aşağıdaki kod bir ürünü bulur ve güncelleştirir:

    public Task<Product> UpdateAsync(Product update)
    {
        return _products.FindOneAndReplaceAsync(
            Builders<Product>.Filter.Eq(p => p.Sku, update.Sku), 
            update, 
            new FindOneAndReplaceOptions<Product> { ReturnDocument = ReturnDocument.After });
    }
    

    Benzer şekilde, koleksiyonu kullanarak belgeleri silebilirsiniz . DeleteOne () yöntemi.

Uygulama ayarlarını güncelleştirme

Azure portal, bağlantı dizesi bilgilerini kopyalayın:

  1. Azure portal, sol gezinti bağlantı dizesi seç ' de Cosmos DB hesabınızı seçin ve ardından okuma-yazma anahtarları' nı seçin. Bir sonraki adımda bulunan appsettings.js birincil bağlantı dizesini kopyalamak için ekranın sağ tarafındaki kopyalama düğmelerini kullanacaksınız.

  2. appsettings.json dosyasını açın.

  3. Portaldan birincil bağlantı dizesi değerini kopyalayın (kopyalama düğmesini kullanarak) ve dosyayı dosyadaki appsettings.js Databasesettings. mongoconnectionstring özelliğinin değeri yapın.

  4. Dosyadaki appsettings.js Databasesettings. DatabaseName özelliğindeki veritabanı adı değerini gözden geçirin.

  5. Dosyadaki appsettings.js Databasesettings. productcollectionname özelliğindeki koleksiyon adı değerini gözden geçirin.

Uyarı

Parolaları veya diğer hassas verileri kaynak koduna hiçbir şekilde denetmeyin.

artık uygulamanızı Cosmos DB ile iletişim kurması için gereken tüm bilgileri ile güncelleştirdiniz.

Örnek verileri yükleme

Küçük miktarlarda JSON, CSV veya TSV verilerini kolayca içeri aktaran bir CLı aracı olan mongoımport'u indirin . Bu projenin klasöründe sunulan örnek ürün verilerini yüklemek için mongoımport kullanacağız Data .

Azure portal, bağlantı bilgilerini kopyalayın ve aşağıdaki komuta girin:

mongoimport --host <HOST>:<PORT> -u <USERNAME> -p <PASSWORD> --db cosmicworks --collection products --ssl --jsonArray --writeConcern="{w:0}" --file Data/products.json
  1. Azure portal, mongodb hesabı için Azure Cosmos DB apı 'nizi seçin, sol gezinti bağlantı dizesi' ni seçin ve ardından okuma-yazma anahtarları' nı seçin.

  2. Portaldan ana bilgisayar değerini kopyalayın (kopyalama düğmesini kullanarak) ve yerine girin <HOST> .

  3. Bağlantı noktası değerini portaldan kopyalayın (kopyalama düğmesini kullanarak) ve yerine girin <PORT> .

  4. Portaldan UserName değerini kopyalayın (kopyalama düğmesini kullanarak) ve yerine girin <USERNAME> .

  5. Portaldan Password değerini kopyalayın (kopyalama düğmesini kullanarak) ve yerine girin <PASSWORD> .

  6. Veritabanı adı değerini gözden geçirin ve dışında bir öğe oluşturduysanız güncelleştirin cosmicworks .

  7. Koleksiyon adı değerini gözden geçirin ve dışında bir öğe oluşturduysanız güncelleştirin products .

Not

Bu adımı atlamak isterseniz, bu Web API projesinin bir parçası olarak sağlanmış POST uç noktasını kullanarak doğru şemaya sahip belgeler oluşturabilirsiniz.

Uygulamayı çalıştırma

Visual Studio, uygulamayı çalıştırmak için CTRL + F5 ' i seçin. Varsayılan tarayıcı uygulamayla birlikte başlatılır.

CLı tercih ediyorsanız, örnek uygulamayı başlatmak için bir komut penceresinde aşağıdaki komutu çalıştırın. Bu komut ayrıca Proje bağımlılıklarını yükleyecek ve projeyi oluşturacak, ancak tarayıcıyı otomatik olarak başlatamacaktır.

dotnet run

Uygulama çalıştırıldıktan sonra, https://localhost:5001/swagger/index.html Web API 'si için Swagger belgelerini görmek ve örnek istekleri göndermek için bölümüne gidin.

Test etmek istediğiniz API 'YI seçin ve "deneyin" seçeneğini belirleyin.

Web API Swagger Kullanıcı arabirimi API uç noktalarını dene sayfasının ekran görüntüsü.

Gerekli parametreleri girin ve "Yürüt" i seçin.

Kaynakları temizleme

Uygulama ve hesap hesabınızla Azure Cosmos DB, daha fazla ücret ödemeden oluşturduğunuz Azure kaynaklarını silebilirsiniz. Kaynakları silmek için:

  1. Arama Azure portal kaynak grupları için arama ve seçimlerini kullanın.

  2. Listeden bu hızlı başlangıç için oluşturduğunuz kaynak grubunu seçin.

    Silinecek kaynak grubunu seçin

  3. Kaynak grubunun Genel Bakış sayfasında Kaynak grubunu sil'i seçin.

    Kaynak grubunu silme

  4. Sonraki pencerede, silinecek kaynak grubunun adını girin ve Sil'i seçin.

Sonraki adımlar

Bu hızlı başlangıçta, MongoDB hesabı için bir API oluşturmayı, bir veritabanı ve kodla bir koleksiyon oluşturmayı ve bir Web API uygulamasını çalıştırmayı öğrendiniz. Artık veritabanınıza daha fazla veri aktarabilirsiniz.

Azure Cosmos DB bir geçişe yönelik kapasite planlaması yapılmaya çalışılıyor musunuz? Kapasite planlaması için mevcut veritabanı kümeniz hakkında bilgi kullanabilirsiniz.