Aracılığıyla paylaş


Hızlı Başlangıç: Azure İşlevlerini kullanarak Azure SQL Veritabanı değişikliklerine yanıt verme

Bu Hızlı Başlangıçta, Bir Azure SQL Veritabanı tablosundaki değişikliklere yanıt veren bir uygulama oluşturmak için Visual Studio Code kullanacaksınız. Kodu yerel olarak test ettikten sonra Azure İşlevleri'nde Flex Consumption planında çalışan yeni bir sunucusuz işlev uygulamasına dağıtırsınız.

Proje kaynağı, proje kodunuzu yerel olarak başlatmayı ve doğrulamayı ve kodunuzu Azure'a dağıtmayı kolaylaştırmak için Visual Studio Code ile Azure Geliştirici CLI (azd) uzantısını kullanır. Bu dağıtım, güvenli ve ölçeklenebilir Azure İşlevleri dağıtımları için geçerli en iyi yöntemleri izler.

Önemli

Azure SQL veritabanındaki değişikliklere yanıt vermek tüm diller için destekleniyor olsa da, bu hızlı başlangıç senaryosunda şu anda yalnızca C#, Python ve TypeScript örnekleri vardır. Bu hızlı başlangıcı tamamlamak için makalenin üst kısmındaki desteklenen dillerden birini seçin.

Önkoşullar

  • 18.x veya üzerini Node.js. node --version komutunu kullanarak sürümünüzü kontrol edin.

Projeyi başlatma

Şablondan yerel bir Azure İşlevleri kod projesi oluşturmak için komut paletinden komutunu kullanabilirsiniz azd init .

  1. Visual Studio Code'da, projenizi oluşturmak istediğiniz klasörü veya çalışma alanını açın.

  2. Komut paletini açmak için F1 tuşuna basın, komutunu Azure Developer CLI (azd): Initialize App (init)arayıp çalıştırın ve ardından Şablon seçin'i seçin.

  3. İstendiğinde arama yapın ve Azure Functions with SQL Triggers and Bindings öğesini seçin.

  4. İstendiğinde, örneğin sqldbchanges gibi benzersiz bir ortam adı girin.

Bu komut , proje dosyalarını şablon deposundan çeker ve projeyi geçerli klasör veya çalışma alanında başlatır. içinde azd, ortamı uygulamanız için benzersiz bir dağıtım bağlamını korumak için kullanılır ve birden fazla dağıtım bağlamı tanımlayabilirsiniz. Ayrıca Azure'da oluşturduğunuz kaynak grubunun adının bir parçasıdır.

Bu komut , proje dosyalarını şablon deposundan çeker ve projeyi geçerli klasör veya çalışma alanında başlatır. içinde azd, ortamı uygulamanız için benzersiz bir dağıtım bağlamını korumak için kullanılır ve birden fazla dağıtım bağlamı tanımlayabilirsiniz. Ayrıca Azure'da oluşturduğunuz kaynak grubunun adının bir parçasıdır.

Bu komut , proje dosyalarını şablon deposundan çeker ve projeyi geçerli klasör veya çalışma alanında başlatır. içinde azd, ortamı uygulamanız için benzersiz bir dağıtım bağlamını korumak için kullanılır ve birden fazla dağıtım bağlamı tanımlayabilirsiniz. Ayrıca Azure'da oluşturduğunuz kaynak grubunun adının bir parçasıdır.

Uygulamanızı yerel olarak çalıştırabilmeniz için önce kaynakları Azure'da oluşturmanız gerekir.

Azure kaynakları oluşturun

Bu proje, geçerli en iyi yöntemleri izleyen diğer gerekli Azure kaynaklarıyla birlikte bir Flex Consumption planında bir işlev uygulaması oluşturmak amacıyla azd provision komutunu kullanacak şekilde yapılandırılmıştır.

  1. Visual Studio Code'da F1 tuşuna basarak komut paletini açın, komutunu Azure Developer CLI (azd): Sign In with Azure Developer CLIarayıp çalıştırın ve ardından Azure hesabınızı kullanarak oturum açın.

  2. Komut paletini açmak için F1 tuşuna basın, gerekli Azure kaynaklarını oluşturmak için komutunu Azure Developer CLI (azd): Provision Azure resources (provision) arayın ve çalıştırın.

  3. Terminal penceresinde istendiğinde şu gerekli dağıtım parametrelerini sağlayın:

    Uyarı Description
    Kullanılacak Azure Aboneliğini seçin Kaynaklarınızın oluşturulmasını istediğiniz aboneliği seçin.
    konum dağıtım parametresi Yeni Azure kaynaklarını içeren kaynak grubunun oluşturulacağı Azure bölgesi. Yalnızca şu anda Esnek Tüketim planını destekleyen bölgeler gösterilir.
    vnetEnabled dağıtım parametresi Şablon sanal ağ içinde kaynak oluşturmayı desteklese de, dağıtımı ve testi basitleştirmek için öğesini seçin False.

Komut, en son en iyi yöntemleri izleyerek, bu gerekli Azure kaynaklarını oluşturmak ve yapılandırmak için istemlere yanıtlarınızı Bicep yapılandırma dosyalarıyla birlikte kullanır.

  • Esnek Tüketim planı ve işlev uygulaması
  • Azure SQL Veritabanı (varsayılan ad: ToDo)
  • Azure Depolama (gerekli) ve Application Insights (önerilir)
  • Hesabınız için ilkelere ve rollere erişme
  • Yönetilen kimlikleri kullanan hizmet-hizmet bağlantıları (depolanan bağlantı dizesi yerine)

Sağlama sonrası kancalar, yerel olarak çalıştırmak için gereken local.settings.json dosyasını da oluşturur. Bu dosya, Azure'daki veritabanınıza bağlanmak için gereken ayarları içerir.

Kodu gözden geçirme (isteğe bağlı)

Örnek iki işlevi tanımlar:

İşlev adı Kod dosyası Tetikleyici türü Description
httptrigger-sql-output sql_output_http_trigger.cs HTTP tetikleyicisi Düzgün biçimlendirilmiş bir JSON yükünü kabul eder ve sql çıkış bağlamasını kullanarak nesneyi tabloya ToDo satır olarak ekler.
ToDoTrigger sql_trigger.cs SQL tetikleyicisi Tablodaki ToDo satır düzeyi değişiklikleri dinler ve değiştirilen satırı temsil eden bir nesne döndürür.

Tür ToDoItem, ToDoItem.cs içinde tanımlanır.

İşlev adı Kod dosyası Tetikleyici türü Description
http_trigger_sql_output function_app.py HTTP tetikleyicisi Düzgün biçimlendirilmiş bir JSON yükünü kabul eder ve sql çıkış bağlamasını kullanarak nesneyi tabloya ToDo satır olarak ekler.
httptrigger-sql-output sql_trigger_todo SQL tetikleyicisi Tablodaki ToDo satır düzeyi değişiklikleri dinler ve değiştirilen satırı temsil eden bir nesne döndürür.

Tür ToDoItemtodo_item.py tanımlanır.

İşlev adı Kod dosyası Tetikleyici türü Description
httpTriggerSqlOutput sql_output_http_trigger.ts HTTP tetikleyicisi Düzgün biçimlendirilmiş bir JSON yükünü kabul eder ve sql çıkış bağlamasını kullanarak nesneyi tabloya ToDo satır olarak ekler.
sqlTriggerToDo sql_trigger.ts SQL tetikleyicisi Tablodaki ToDo satır düzeyi değişiklikleri dinler ve değiştirilen satırı temsil eden bir nesne döndürür.

Tür ToDoItem, ToDoItem.ts içinde tanımlanır.

Her iki işlev de Microsoft Entra Id kimlik doğrulamasını kullanarak Azure SQL Veritabanı örneğine kimlik tabanlı bir bağlantı tanımlayan uygulama düzeyinde AZURE_SQL_CONNECTION_STRING_KEY_* ortam değişkenlerini kullanır. Bu ortam değişkenleri, işlem sırasında azd provision hem Azure'da (işlev uygulaması ayarları) hem de yerel olarak (local.settings.json) oluşturulur.

SQL veritabanına bağlanma

Yeni veritabanına bağlanmak için Visual Studio Code için SQL Server (mssql) uzantısını kullanabilirsiniz. Bu uzantı, SQL tetikleyici işlevini çalıştırmak için tabloda güncelleştirmeler ToDo yapmanıza yardımcı olur.

  1. F1 tuşuna basın ve komut paletinde komutunu MS SQL: Add Connectionarayın ve çalıştırın.

  2. Bağlantı iletişim kutusundaGiriş türü'nüAzure'a Gözat olarak değiştirin ve kalan seçenekleri ayarlayın:

    Seçenek Seçmek Description
    Sunucu SQL Server örneğiniz Varsayılan olarak, Azure hesabınız için erişilebilen tüm sunucular görüntülenir. Sunucu listesini filtrelemeye yardımcı olması için Abonelik, Kaynak grubu ve Konum kullanın.
    Veritabanı ToDo Sağlama işlemi sırasında oluşturulan veritabanı.
    Kimlik doğrulaması türü Microsoft Entra ID Henüz oturum açmadıysanız Oturum aç'ı seçin ve Azure hesabınızda oturum açın.
    Kiracı Kimlik Belirli bir hesap kiracısı. Hesabınızda birden fazla kiracı varsa aboneliğiniz için doğru kiracıyı seçin.
  3. Veritabanınıza bağlanmak için Bağlan'ı seçin. Bağlantı, barındırma sunucusunda yönetici izinleri verilen ve veritabanında ile eşlenen dbo yerel kullanıcı hesabınızı kullanır.

  4. SQL Server görünümünde Bağlantılar'ı ve ardından SQL Server gezginindeki yeni sunucunuzu bulun ve genişletin. Tablolar'ı genişletin ve tablonun var olduğunu ToDo doğrulayın. Yoksa azd provision'i yeniden çalıştırmanız ve hataları denetlemeniz gerekebilir.

İşlevi yerel olarak çalıştırma

Visual Studio Code, Azure'daki yeni işlev uygulamanızda yayımlamadan önce bu projeyi yerel geliştirme bilgisayarınızda çalıştırmanıza olanak sağlamak için Azure İşlevleri Çekirdeği araçlarıyla tümleştirilir.

  1. F1 tuşuna basın ve komut paletinde komutunu Azurite: Startarayın ve çalıştırın.

  2. İşlevi yerel olarak başlatmak için F5 tuşuna veya sol taraftaki Etkinlik çubuğundaki Çalıştır ve Hata Ayıkla simgesine basın.

    Terminal panelinde Core Tools'un çıkışı görüntülenir. Uygulamanız Terminal panelinde başlar ve yerel olarak çalışan işlevin adını görebilirsiniz.

Uygulama çalışırken her iki işlev tetikleyicisini de doğrulayabilir ve hatalarını ayıklayabilirsiniz.

SQL çıkış bağlamasına yazan HTTP tetikleyici işlevini doğrulamak için:

  1. Proje dosyasında da bulabileceğiniz test.http bu JSON nesnesini kopyalayın:

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Bu veriler, HTTP uç noktasını çağırdığınızda SQL veritabanınıza eklediğiniz bir satırı temsil eder. Çıkış bağı, veri nesnesini veritabanındaki bir INSERT işlemi olarak dönüştürür.

  2. Uygulama çalışırken, Çalışma Alanı altındaki Azure görünümünde Yerel proje>İşlevleri'ni genişletin.

  3. HTTP işlevinizi sağ seçin (veya macOS'ta Ctrl tuşunu basılı tutarak tıklayın), İşlevi şimdi yürüt'e tıklayın, kopyalanan JSON verilerini yapıştırın ve Enter tuşuna basın.

    İşlev HTTP isteğini işler ve öğeyi bağlı SQL veritabanına yazar ve oluşturulan nesneyi döndürür.

  4. SQL Server gezginine geri dönün, tabloyu sağ seçin ToDo (veya macOS'ta Ctrl tuşunu basılı tutarak tıklayın) ve İlk 1000'i Seç'i seçin. Sorgu yürütürken eklenen veya güncelleştirilen satırı döndürür.

  5. 3. Adımı yineleyin ve aynı kimlikle aynı veri nesnesini yeniden gönderin. Bu kez, çıkış bağlaması bir UPDATE işlemi yerine bir INSERT işlemi gerçekleştirir ve veritabanındaki mevcut satırı değiştirir.

İşiniz bittiğinde, Temel Araçlar işlemini durdurmak için terminale Ctrl+C yazın.

Azure’a dağıtın

Proje kodunu Azure'da önceden sağlanan kaynaklarınıza dağıtmak için Visual Studio Code'dan komutunu çalıştırabilirsiniz azd deploy .

  1. Komut paletini açmak için F1 tuşuna basın, komutunu Azure Developer CLI (azd): Deploy to Azure (deploy)arayın ve çalıştırın.

    azd deploy Komut, kodunuzu paketler ve dağıtım kapsayıcısına dağıtır. Ardından uygulama başlatılır ve dağıtılan pakette çalıştırılır.

  2. Komut başarıyla tamamlandıktan sonra uygulamanız Azure'da çalışır. İşlev uygulamanızın Azure'da çalışan URL'si olan Endpoint değerini not edin.

İşlevi Azure'da çağırma

  1. Visual Studio Code'da F1 tuşuna basın ve komut paletinde komutunu Azure: Open in portalarayın ve çalıştırın, öğesini seçin Function appve yeni uygulamanızı seçin. Gerekirse Azure hesabınızla oturum açın.

  2. Sol bölmede Uygulamanızın Application Insights günlüklerine bağlanan Günlük akışı'nı seçin.

  3. Her iki işlevi de Azure'da çalıştırmak için Visual Studio Code'a dönün.

  1. Komut paletini açmak için F1 tuşuna basın, komutunu Azure Functions: Execute Function Now...arayın ve çalıştırın.

  2. Listeden uzak işlev uygulamanızı arayın ve seçin, ardından HTTP tetikleyici işlevini seçin.

  3. Daha önce olduğu gibi JSON nesne verilerinizi Enter yükü gövdesine yapıştırın ve Enter tuşuna basın.

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    INSERT yerine bir UPDATE gerçekleştirmek için, id değerini yeni bir GUID değeriyle değiştirin.

  4. Portala dönün ve günlük penceresinde yürütme kaydını görüntüleyin.

Kaynakları temizle

İşlev uygulamanız ve ilgili kaynaklarınızla çalışmayı bitirdiğinizde, işlev uygulamasını ve ilgili kaynaklarını Azure'dan silmek ve başka maliyetlerle karşılaşmamak için bu komutu kullanabilirsiniz:

azd down --no-prompt

Uyarı

seçeneği, --no-prompt sizden onay almadan kaynak grubunuzu silmenizi belirtir azd .

Bu komut yerel kod projenizi etkilemez.