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ı AzureWebJobsStoragebir 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.

  1. Çözüm Gezgini'nde projeye sağ tıklayın ve Yayımla'yı seçin.

  2. Barındırma altındaki Yayımla sekmesinde üç noktayı (...) genişletin ve Azure Uygulaması Hizmet ayarlarını yönet'i seçin.

    Uygulama ayarlarını düzenleme

  3. 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.

  1. Araçlar menüsünde NuGet Paket Yöneticisi> Paket Yöneticisi Konsolu'nu seçin.

  2. 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

  1. İş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.

  2. Azure İşlevleri çalışma zamanı çıktısından işlevinizin URL'sini kopyalayın.

    Azure yerel çalışma zamanı

  3. 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:

    Tarayıcıdaki işlev localhost yanıtı

  4. 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.

  1. Azure Depolama Gezgini aracını çalıştırın, soldaki bağlan simgesini seçin ve Hesap ekle'yi seçin.

    Microsoft Azure Depolama Gezgini'e Azure hesabı eklemenin ekran görüntüsü.

  2. 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.

    Azure hesabı pencerenizde oturum açma işleminin ekran görüntüsü.

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

  1. 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 nameAzure değeri ile çağırdıysanız, kuyruk iletisi İşleve geçirilen ad: Azure şeklinde olur.

    Azure Depolama Gezgini'da gösterilen kuyruk iletisinin ekran görüntüsü.

  2. İş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

  1. Çö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.

  2. 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.

  3. Çı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:

  1. 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.

    İşlev uygulaması sayfasından silinecek kaynak grubunu seçmeyi gösteren ekran görüntüsü.

    Panodan bu sayfaya ulaşmak için Kaynak grupları'nı ve ardından bu makalede kullandığınız kaynak grubunu seçin.

  2. 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.

  3. 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: