Visual Studio kullanarak işlevleri Azure Depolama'ya bağlama
Azure İşlevleri, kendi tümleştirme kodunuzu yazmak zorunda kalmadan Azure hizmetlerini ve diğer kaynakları işlevlere bağlamanıza olanak tanır. Hem girişi hem de çıkışı temsil eden bu bağlamalar işlev tanımı içinde bildirilir. Bağlamalardan alınan veriler işleve parametre olarak sağlanır. Tetikleyici, özel bir giriş bağlama türüdür. Bir işlevin tek bir tetikleyicisi olsa da, birden çok giriş ve çıkış bağlaması olabilir. Daha fazla bilgi edinmek için bkz. tetikleyiciler ve bağlamalar kavramları Azure İşlevleri.
Bu makalede, önceki hızlı başlangıç makalesinde oluşturduğunuz işlevi Azure Depolama'ya bağlamak için Visual Studio'nun nasıl kullanılacağı gösterilmektedir. Bu işleve eklediğiniz çıkış bağlaması, HTTP isteğinden Azure Kuyruk depolama kuyruğundaki bir iletiye veri yazar.
Bağlamaların çoğu, İşlevler'in bağlı hizmete erişmek için kullandığı depolanmış bir bağlantı dizesi gerektirir. Bunu kolaylaştırmak için işlev uygulamanızla oluşturduğunuz Depolama hesabını kullanırsınız. Bu hesaba bağlantı zaten adlı AzureWebJobsStorage
bir uygulama ayarında depolanır.
Önkoşullar
Bu makaleye başlamadan önce şunlar gerekir:
- Visual Studio hızlı başlangıcının 1. bölümünü tamamlayın.
- Azure Depolama Gezgini yükleyin. Depolama Gezgini, çıkış bağlamanız tarafından oluşturulan kuyruk iletilerini incelemek için kullanacağınız bir araçtır. Depolama Gezgini macOS, Windows ve Linux tabanlı işletim sistemlerinde desteklenir.
- Visual Studio'dan Azure aboneliğinizde oturum açın.
İşlev uygulaması ayarlarını indirme
Önceki hızlı başlangıç makalesinde, Azure'da gerekli Depolama hesabıyla birlikte bir işlev uygulaması oluşturdunuz. Bu hesabın bağlantı dizesi Azure'daki uygulama ayarlarında güvenli bir şekilde depolanır. Bu makalede, iletileri aynı hesaptaki bir Depolama kuyruğuna yazarsınız. İşlevi yerel olarak çalıştırırken Depolama hesabınıza bağlanmak için uygulama ayarlarını local.settings.json dosyasına indirmeniz gerekir.
Çözüm Gezgini'nde projeye sağ tıklayın ve Yayımla'yı seçin.
Barındırma altındaki Yayımla sekmesinde üç noktayı (...) genişletin ve Azure Uygulaması Hizmet ayarlarını yönet'i seçin.
AzureWebJobsStorage altında, Uzak dize değerini Yerel'e kopyalayın ve tamam'ı seçin.
Bağlantının ayarını kullanan AzureWebJobsStorage
depolama bağlaması artık yerel olarak çalışırken Kuyruk depolama alanınıza bağlanabilir.
Bağlama uzantılarını kaydetme
Kuyruk depolama çıkış bağlaması kullandığınızdan, projeyi çalıştırmadan önce Depolama bağlamaları uzantısının yüklü olması gerekir. HTTP ve zamanlayıcı tetikleyicileri dışında bağlamalar uzantı paketleri olarak uygulanır.
Araçlar menüsünde NuGet Paket Yöneticisi> Paket Yöneticisi Konsolu'nu seçin.
Konsolunda aşağıdaki Install-Package komutunu çalıştırarak Depolama uzantılarını yükleyin:
Install-Package Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
Artık projenize depolama çıkış bağlaması ekleyebilirsiniz.
Çıktı bağlaması ekleme
C# projesinde bağlamalar, işlev yönteminde bağlama öznitelikleri olarak tanımlanır. Belirli tanımlar, uygulamanızın işlem içinde mi (C# sınıf kitaplığı) yoksa yalıtılmış bir çalışan işleminde mi çalıştığına bağlıdır.
HttpExample.cs proje dosyasını açın ve aşağıdaki MultiResponse
sınıfı ekleyin:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public HttpResponseData HttpResponse { get; set; }
}
sınıfı adlı MultiResponse
outqueue
bir depolama kuyruğuna ve HTTP başarı iletisine yazmanıza olanak tanır. Öznitelik bir dize dizisine uygulandığından kuyruğa QueueOutput
birden çok ileti gönderilebilir.
özelliği, Connection
depolama hesabı için bağlantı dizesi ayarlar. Bu durumda, varsayılan depolama hesabını zaten kullandığınız için atlayabilirsiniz Connection
.
Çıkış bağlaması kullanan kod ekleme
Bağlama tanımlandıktan sonra bağlamanın name
işlevini kullanarak işlev imzasında bir öznitelik olarak erişebilirsiniz. Çıkış bağlaması kullanarak kimlik doğrulaması, kuyruk başvurusu alma veya veri yazma için Azure Depolama SDK'sı kodunu kullanmanız gerekmez. İşlevler çalışma zamanı ve kuyruk çıkış bağlaması bu görevleri sizin için yapar.
Mevcut HttpExample
sınıfı aşağıdaki kodla değiştirin:
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
FunctionContext executionContext)
{
var logger = executionContext.GetLogger("HttpExample");
logger.LogInformation("C# HTTP trigger function processed a request.");
var message = "Welcome to Azure Functions!";
var response = req.CreateResponse(HttpStatusCode.OK);
response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
response.WriteString(message);
// Return a response to both HTTP trigger and storage output binding.
return new MultiResponse()
{
// Write a single message.
Messages = new string[] { message },
HttpResponse = response
};
}
}
İşlevi yerel olarak çalıştırma
İşlevinizi çalıştırmak için Visual Studio'da F5 tuşuna basın. Araçların HTTP isteklerini işleyebilmesi için bir güvenlik duvarı özel durumunu etkinleştirmeniz gerekebilir. Bir işlevi yerel olarak çalıştırdığınızda yetkilendirme düzeyleri hiçbir zaman zorlanmaz.
Azure İşlevleri çalışma zamanı çıktısından işlevinizin URL'sini kopyalayın.
HTTP isteğinin URL'sini tarayıcınızın adres çubuğuna yapıştırın ve isteği çalıştırın. Aşağıdaki görüntüde, işlev tarafından döndürülen yerel GET isteğine tarayıcıda verilen yanıt gösterilmektedir:
Hata ayıklamayı durdurmak için Visual Studio'da Shift F5 tuşlarına+basın.
Çıkış bağlaması ilk kez kullanıldığında, depolama hesabınızda İşlevler çalışma zamanı tarafından adlı outqueue
yeni bir kuyruk oluşturulur. Kuyruğun yeni iletiyle birlikte oluşturulduğunu doğrulamak için Depolama Gezgini kullanacaksınız.
Depolama Gezgini’ni hesabınıza bağlama
Azure Depolama Gezgini zaten yüklediyseniz ve Azure hesabınıza bağladıysanız bu bölümü atlayın.
Azure Depolama Gezgini aracını çalıştırın, soldaki bağlan simgesini seçin ve Hesap ekle'yi seçin.
Bağlan iletişim kutusunda Azure hesabı ekle'yi seçin, Azure ortamınızı seçin ve ardından Oturum aç... seçeneğini belirleyin.
Hesabınızda başarıyla oturum açtığınızda hesabınızla ilişkili tüm Azure aboneliklerini görürsünüz. Aboneliğinizi seçin ve Gezgini Aç'ı seçin.
Çıkış kuyruğunu inceleme
Depolama Gezgini Kuyruklar düğümünü genişletin ve outqueue adlı kuyruğu seçin.
Kuyruk, HTTP ile tetiklenen işlevi çalıştırdığınızda kuyruk çıkış bağlamasının oluşturduğu iletiyi içerir. İşlevi varsayılan
name
Azure değeri ile çağırdıysanız, kuyruk iletisi İşleve geçirilen ad: Azure şeklinde olur.İşlevi yeniden çalıştırın, başka bir istek gönderin ve kuyrukta yeni bir ileti görürsünüz.
Şimdi güncelleştirilmiş işlev uygulamasını Azure'a yeniden yayımlamanın zamanı geldi.
Güncelleştirilmiş uygulamayı yeniden dağıtma ve doğrulama
Çözüm Gezgini'da projeye sağ tıklayın ve Yayımla'yı seçin, ardından Projeyi Azure'da yeniden yayımlamak için Yayımla'yı seçin.
Dağıtım tamamlandıktan sonra yeniden dağıtılan işlevi test etmek için tarayıcıyı yeniden kullanabilirsiniz. Daha önce olduğu gibi sorgu dizesini
&name=<yourname>
URL'ye ekleyin.Çıkış bağlamasının kuyrukta yeniden yeni bir ileti oluşturduğunu doğrulamak için depolama kuyruğundaki iletiyi yeniden görüntüleyin.
Kaynakları temizleme
Bu koleksiyondaki diğer hızlı başlangıçlar, bu hızlı başlangıcı temel alır. Sonraki hızlı başlangıçlar, öğreticiler veya bu hızlı başlangıçta oluşturduğunuz hizmetlerden herhangi biriyle çalışmayı planlıyorsanız kaynakları temizlemeyin.
Azure’da Kaynaklar; işlev uygulamalarını, işlevleri, depolama hesaplarını ve benzeri öğeleri ifade eder. Bunlar kaynak grupları halinde gruplandırılır ve grubu silerek gruptaki her şeyi silebilirsiniz.
Bu hızlı başlangıçları tamamlamak için kaynaklar oluşturdunuz. Hesap durumunuz ve hizmet fiyatlandırmanıza bağlı olarak bu kaynaklar için faturalandırılabilirsiniz. Kaynaklara artık ihtiyacınız yoksa, şunları yaparak silebilirsiniz:
Azure portalında Kaynak grubu sayfasına gidin.
İşlev uygulaması sayfasından bu sayfaya ulaşmak için Genel Bakış sekmesini ve ardından Kaynak grubu altındaki bağlantıyı seçin.
Panodan bu sayfaya ulaşmak için Kaynak grupları'nı ve ardından bu makalede kullandığınız kaynak grubunu seçin.
Kaynak grubu sayfasında, dahil edilen kaynakların listesini gözden geçirin ve bunların silmek istediğiniz kaynaklar olduğunu doğrulayın.
Kaynak grubunu sil'i seçin ve yönergeleri izleyin.
Silme işlemi birkaç dakika sürebilir. İşlem tamamlandığında, birkaç saniye boyunca bir bildirim görüntülenir. Bildirimi görüntülemek için sayfanın üst kısmındaki zil simgesini de seçebilirsiniz.
Sonraki adımlar
HTTP ile tetiklenen işlevinizi depolama kuyruğuna veri yazacak şekilde güncelleştirdiniz. İşlev geliştirme hakkında daha fazla bilgi edinmek için bkz. Visual Studio kullanarak Azure İşlevleri geliştirme.
Ardından, işlev uygulamanız için Application Insights izlemeyi etkinleştirmeniz gerekir: