Azure SQL Veritabanına bağlanmak için Azure İşlevleri kullanma

Bu makalede, Azure İşlevleri kullanarak Azure SQL Veritabanına veya Azure SQL Yönetilen Örneği bağlanan zamanlanmış bir iş oluşturma işlemi gösterilmektedir. İşlev kodu, veritabanındaki bir tablodaki satırları temizler. Yeni C# işlevi, Visual Studio 2019'da önceden tanımlanmış bir zamanlayıcı tetikleyici şablonu temel alınarak oluşturulur. Bu senaryoyu desteklemek için, işlev uygulamasında bir uygulama ayarı olarak bir veritabanı bağlantı dizesi de ayarlamanız gerekir. Azure SQL Yönetilen Örneği için genel uç noktanın Azure İşlevleri'dan bağlanabilmesini etkinleştirmeniz gerekir. Bu senaryo, veritabanına karşı toplu bir işlem kullanır.

C# İşlevleri ile ilk kez çalışıyorsanız C# geliştirici başvuru Azure İşlevleri okumanız gerekir.

Önkoşullar

Bağlantı bilgilerini alma

Azure portal kullanarak Azure SQL Veritabanında veritabanı oluşturma işlemini tamamladığınızda oluşturduğunuz veritabanının bağlantı dizesini almanız gerekir.

  1. Azure Portal’ında oturum açın.

  2. Sol taraftaki menüden SQL Veritabanları'nı seçin ve SQL veritabanları sayfasında veritabanınızı seçin.

  3. Ayarlar'ın altında Bağlantı dizeleri'ni seçin ve bağlantı dizesinin tamamını ADO.NET kopyalayın. Azure SQL Yönetilen Örneği için ortak uç nokta için bağlantı dizesini kopyalayın.

    ADO.NET bağlantı dizesini kopyalayın.

Bağlantı dizesini ayarlama

Azure'da işlevlerinizin yürütülmesini bir işlev uygulaması barındırır. En iyi güvenlik uygulaması olarak, bağlantı dizelerini ve diğer gizli dizileri işlev uygulaması ayarlarınızda depolayın. Uygulama ayarlarının kullanılması, bağlantı dizesinin kodunuzla birlikte yanlışlıkla açıklanmasını önler. İşlev uygulamanızın uygulama ayarlarına doğrudan Visual Studio'dan erişebilirsiniz.

Uygulamanızı daha önce Azure'da yayımlamış olmanız gerekir. Henüz yapmadıysanız işlev uygulamanızı Azure'da yayımlayın.

  1. Çözüm Gezgini'da işlev uygulaması projesine sağ tıklayın ve Yayımla'yı seçin.

  2. Yayımla sayfasında, Barındırma alanındaki üç noktayı (...) seçin ve ardından Azure App Service ayarlarını yönet'i seçin.

    İşlev uygulamasının App Service ayarlarını yönetin.

  3. Uygulama Ayarları'ndaAyar ekle'yi seçin, Yeni uygulama ayarı adı alanına yazınsqldb_connectionve Tamam'ı seçin.

    İşlev uygulaması için bir uygulama ayarı ekleyin.

  4. Yeni sqldb_connection ayarında, önceki bölümde kopyaladığınız bağlantı dizesini Yerel alanına yapıştırın ve ve {your_password} yer tutucularını gerçek değerlerle değiştirin{your_username}. Güncelleştirilmiş değeri Uzak alanına kopyalamak için Yerelden değer ekle'yi seçin ve ardından Tamam'ı seçin.

    SQL bağlantı dizesi ayarı ekleyin.

    Bağlantı dizeleri Azure'da şifrelenmiş olarak depolanır (Uzak). Gizli dizilerin sızmasını önlemek için, local.settings.json proje dosyası (Yerel) bir .gitignore dosyası kullanılarak kaynak denetiminden çıkarılmalıdır.

SqlClient paketini projeye ekleme

SqlClient kitaplığını içeren NuGet paketini eklemeniz gerekir. SQL Veritabanı bağlanmak için bu veri erişim kitaplığı gereklidir.

  1. Visual Studio 2022'de yerel işlev uygulaması projenizi açın.

  2. Çözüm Gezgini'da işlev uygulaması projesine sağ tıklayın ve NuGet Paketlerini Yönet'i seçin.

  3. Gözat sekmesinde Microsoft.Data.SqlClient öğesini arayın ve bulduğunuzda seçin.

  4. Microsoft.Data.SqlClient sayfasında sürüm'ü 5.1.0 seçin ve yükle'ye tıklayın.

  5. Yükleme tamamlandığında değişiklikleri gözden geçirin ve Önizleme penceresini kapamak için Tamam’a tıklayın.

  6. Lisans Kabulü penceresi gösterilirse Kabul Ediyorum’a tıklayın.

Artık SQL Veritabanı bağlanan C# işlev kodunu ekleyebilirsiniz.

Zamanlayıcı ile tetiklenen işlev ekleme

  1. Çözüm Gezgini'da işlev uygulaması projesine sağ tıklayın veYeni Azure işlevi ekle'yi> seçin.

  2. Azure İşlevleri şablonu seçiliyken, yeni öğeye benzer DatabaseCleanup.cs bir ad verin ve Ekle'yi seçin.

  3. Yeni Azure işlevi iletişim kutusunda Zamanlayıcı tetikleyicisi'ni ve ardından Ekle'yi seçin. Bu iletişim kutusu zamanlayıcı ile tetiklenen işlev için bir kod dosyası oluşturur.

  4. Yeni kod dosyasını açın ve dosyanın en üstüne aşağıdaki using deyimlerini ekleyin:

    using Microsoft.Data.SqlClient;
    using System.Threading.Tasks;
    
  5. Mevcut Run işlevi aşağıdaki kodla değiştirin:

    [FunctionName("DatabaseCleanup")]
    public static async Task Run([TimerTrigger("*/15 * * * * *")]TimerInfo myTimer, ILogger log)
    {
        // Get the connection string from app settings and use it to create a connection.
        var str = Environment.GetEnvironmentVariable("sqldb_connection");
        using (SqlConnection conn = new SqlConnection(str))
        {
            conn.Open();
            var text = "UPDATE SalesLT.SalesOrderHeader " +
                    "SET [Status] = 5  WHERE ShipDate < GetDate();";
    
            using (SqlCommand cmd = new SqlCommand(text, conn))
            {
                // Execute the command and log the # rows affected.
                var rows = await cmd.ExecuteNonQueryAsync();
                log.LogInformation($"{rows} rows were updated");
            }
        }
    }
    

    Bu işlev, sütunu sevk tarihine göre güncelleştirmek Status için her 15 saniyede bir çalışır. Zamanlayıcı tetikleyicisi hakkında daha fazla bilgi edinmek için bkz. Azure İşlevleri için zamanlayıcı tetikleyicisi.

  6. İşlev uygulamasını başlatmak için F5 tuşuna basın. Azure İşlevleri Core Tools yürütme penceresi Visual Studio'nın arkasında açılır.

  7. Başlatmadan 15 saniye sonra işlev çalışır. Çıktıyı izleyin ve SalesOrderHeader tablosunda güncelleştirilen satır sayısını not edin.

    İşlev günlüklerini görüntüleyin.

    İlk yürütmede 32 veri satırını güncelleştirmeniz gerekir. Aşağıdaki çalıştırmalar, deyimi tarafından UPDATE daha fazla satırın seçilmesi için SalesOrderHeader tablo verilerinde değişiklik yapmazsanız hiçbir veri satırını güncelleştirmez.

Bu işlevi yayımlamayı planlıyorsanız özniteliğini TimerTrigger her 15 saniyede bir daha makul bir cron zamanlamasına değiştirmeyi unutmayın. ayrıca işlev uygulamanızın Azure SQL Veritabanına veya Azure SQL Yönetilen Örneği erişebildiğinden de emin olmanız gerekir. Daha fazla bilgi için, Azure SQL türünüz temelinde aşağıdaki bağlantılardan birine bakın:

Sonraki adımlar

Ardından, kullanmayı öğrenin. Diğer hizmetlerle tümleştirmek için Logic Apps ile çalışır.

İşlevler hakkında daha fazla bilgi için aşağıdaki makalelere bakın: