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
Çalışma zamanının 2.x veya sonraki bir sürümünü hedefleyen yerel bir işlev uygulaması oluşturmak için Visual Studio kullanarak ilk işlevinizi oluşturma makalesindeki adımları tamamlayın. Projenizi Azure'daki bir işlev uygulamasında da yayımlamış olmanız gerekir.
Bu makalede AdventureWorksLT örnek veritabanındaki SalesOrderHeader tablosunda toplu temizleme işlemi yürüten bir Transact-SQL komutu gösterilmektedir. AdventureWorksLT örnek veritabanını oluşturmak için Azure portal kullanarak Azure SQL Veritabanında veritabanı oluşturma makalesindeki adımları tamamlayın.
Bu hızlı başlangıçta kullandığınız bilgisayarın genel IP adresi için sunucu düzeyinde bir güvenlik duvarı kuralı eklemelisiniz. Yerel bilgisayarınızdan SQL Veritabanı örneğine erişebilmek için bu kural gereklidir.
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.
Azure Portal’ında oturum açın.
Sol taraftaki menüden SQL Veritabanları'nı seçin ve SQL veritabanları sayfasında veritabanınızı seçin.
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.
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.
Çözüm Gezgini'da işlev uygulaması projesine sağ tıklayın ve Yayımla'yı seçin.
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.Uygulama Ayarları'ndaAyar ekle'yi seçin, Yeni uygulama ayarı adı alanına yazın
sqldb_connection
ve Tamam'ı seçin.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.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.
Visual Studio 2022'de yerel işlev uygulaması projenizi açın.
Çözüm Gezgini'da işlev uygulaması projesine sağ tıklayın ve NuGet Paketlerini Yönet'i seçin.
Gözat sekmesinde
Microsoft.Data.SqlClient
öğesini arayın ve bulduğunuzda seçin.Microsoft.Data.SqlClient sayfasında sürüm'ü
5.1.0
seçin ve yükle'ye tıklayın.Yükleme tamamlandığında değişiklikleri gözden geçirin ve Önizleme penceresini kapamak için Tamam’a tıklayın.
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
Çözüm Gezgini'da işlev uygulaması projesine sağ tıklayın veYeni Azure işlevi ekle'yi> seçin.
Azure İşlevleri şablonu seçiliyken, yeni öğeye benzer
DatabaseCleanup.cs
bir ad verin ve Ekle'yi seçin.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.
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;
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.İş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.
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.
İ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:
- Azure İşlevleri geliştirici başvurusu
İşlevleri kodlamak ve tetikleyicileri ve bağlamaları tanımlamak için programcı başvurusu - Azure İşlevlerini test etme
İşlevlerinizi test etmek için çeşitli araçları ve teknikleri açıklar.