Alıştırma - Giriş ve çıkış bağlamalarının türlerini keşfedin

Tamamlandı

Bu alıştırmada, bir HTTP isteği aldığında çalışan ve bir ileti döndürerek her isteğe yanıt veren bir işlev oluşturacağız.

Ne oluşturacağımıza ilişkin aşağıdaki üst düzey çizime bakın.

HTTP tetikleyici işlevi şablonu için varsayılan kodu gösteren Kod ve Test bölmesinin ekran görüntüsü.

parametresi req tetikleyici bağlaması, parametre res ise çıkış bağlamasıdır. Bu parametrelerin "istek" ve "yanıt" kısaltmaları olarak kabul etmek yararlı olabilir.

HTTP tetikleyici işlevi şablonu için varsayılan kodu gösteren Kod ve Test bölmesinin ekran görüntüsü.

parametresi Request tetikleyici bağlaması, parametre Response ise çıkış bağlamasıdır.

İşlev uygulaması oluşturma

Şimdi bu modül boyunca kullanabileceğimiz bir işlev uygulaması oluşturalım. İşlev uygulaması, kaynakların daha kolay yönetilmesi, dağıtılması ve paylaşılması için işlevleri bir mantıksal birim olarak gruplandırmanıza olanak tanır.

  1. Korumalı alanı etkinleştirmek için kullandığınız hesapla Azure portalında oturum açın.

  2. Kaynak menüsünde veya Giriş sayfasında Kaynak oluştur'u seçin. Kaynak oluştur bölmesi görüntülenir.

  3. Kaynak oluştur menüsünde İşlem'i seçin ve sonuç listesinde İşlev Uygulaması'nı seçin. Arama hizmeti ve market penceresinde İşlev Uygulaması'nıaramanız gerekebilir.

  4. Tüketim'i ve ardından Seç düğmesini seçin. İşlev Uygulaması Oluştur bölmesi görüntülenir.

  5. Temel Bilgiler sekmesinde, her ayar için aşağıdaki değerleri girin.

    Ayar Value Açıklama
    Proje Ayrıntıları
    Abonelik Concierge Aboneliği Bu alıştırma için kullanmak istediğiniz Azure aboneliği.
    Kaynak Grubu Açılan listeden [sandbox resource group name] öğesini seçin Korumalı alanın kaynak grubu.
    Örnek Ayrıntıları
    İşlev Uygulamasının adı Genel olarak benzersiz bir ad girin Bu ad, yeni işlev uygulamanızı tanımlar. Geçerli karakterler: a-z, 0-9 ve -.
    Çalışma zamanı yığını Açılan listeden Node.js'ı seçin Bu modüldeki örnek kod JavaScript dilinde yazılmıştır.
    Sürüm Varsayılanı kabul et Varsayılan değer bu alıştırma için yeterlidir.
    Bölge Açılan listeden bir konum seçin Size en yakın bölgeyi seçin.
  6. Diğer tüm seçenekler için varsayılan değerleri kabul edin. Ayarlarınızı doğrulamak için Gözden geçir + oluştur'u ve ardından işlev uygulamasını sağlamak ve dağıtmak için Oluştur'u seçin.

  7. Dağıtım biraz zaman alabilir. Hesap adınızın yanındaki genel denetimlerde Bildirimler simgesini seçin ve Dağıtım başarılı iletisini izleyin.

  8. İşlev dağıtımınız tamamlandığında Kaynağa git'i seçin. İşlev uygulamanızın Genel Bakış bölmesi görüntülenir.

  1. Korumalı alanı etkinleştirmek için kullandığınız aynı hesapla Azure portalında oturum açın.

  2. Kaynak menüsünde veya Giriş sayfasında Kaynak oluştur'u seçin. Kaynak oluştur bölmesi görüntülenir.

  3. Kaynak oluştur menüsünde İşlem'i seçin ve sonuç listesinde İşlev Uygulaması'nı seçin. Arama hizmeti ve market penceresinde İşlev Uygulaması'nıaramanız gerekebilir.

  4. Tüketim'i ve ardından Seç düğmesini seçin. İşlev Uygulaması Oluştur bölmesi görüntülenir.

  5. Temel Bilgiler sekmesinde, her ayar için aşağıdaki değerleri girin.

    Ayar Value Açıklama
    Proje Ayrıntıları
    Abonelik Concierge Aboneliği Bu alıştırma için kullanmak istediğiniz Azure aboneliği.
    Kaynak Grubu Açılan listeden [sandbox resource group name] öğesini seçin Korumalı alanın kaynak grubu.
    Örnek Ayrıntıları
    İşlev Uygulamasının adı Genel olarak benzersiz bir ad girin Bu ad, yeni işlev uygulamanızı tanımlar. Geçerli karakterler: a-z, 0-9 ve -.
    Çalışma zamanı yığını Açılan listeden PowerShell Core'ı seçin Bu modülün örnek kodu PowerShell'de yazılır.
    Sürüm Varsayılanı kabul et Varsayılan değer bu alıştırma için yeterlidir.
    Bölge Açılan listeden bir konum seçin Size en yakın bölgeyi seçin.
  6. Diğer tüm seçenekler için varsayılan değerleri kabul edin. Girişinizi doğrulamak için Gözden geçir + oluştur'u ve ardından işlev uygulamasını sağlamak ve dağıtmak için Oluştur'u seçin.

  7. Dağıtım biraz zaman alabilir. Hesap adınızın yanındaki genel denetimlerde Bildirimler simgesini seçin ve Dağıtım başarılı iletisini izleyin.

  8. İşlev dağıtımınız tamamlandığında Kaynağa git'i seçin. İşlev uygulamanızın Genel Bakış bölmesi görüntülenir.

İpucu

Azure portalında işlev uygulamanızı bulma konusunda sorun yaşıyorsanız, Azure portalında işlev uygulamalarını sık kullanılanlarınıza eklemeyi öğrenin.

İşlev oluşturma

Bir işlev uygulaması oluşturduk, sırada bir işlev oluşturmak var. Her işlev bir tetikleyici tarafından etkinleştirilir. Bu modülde, önceden tanımlanmış bir şablon kullanarak bir HTTP tetikleyicisi tanımlayacağız.

  1. Genel Bakış sayfasındaki İşlevler sekmesindeki Azure portalındaoluştur'un altında İşlev oluştur düğmesini seçin.

  2. İşlev oluştur bölmesi görüntülenir.

    İşlev Oluştur bölmesinin ekran görüntüsü.

  3. Şablon seçin bölümünde HTTP tetikleyici şablonunu ve ardından İleri'yi seçin.

  4. Şablon ayrıntıları bölümünde aşağıdaki ayarları onaylayın.

    • İşlev adı metin kutusunda HttpTrigger1 varsayılan adını kabul edin. Azure, oluşturduğunuz işlevler için otomatik olarak benzersiz adlar oluşturur. Farklı bir ad seçebilirsiniz, ancak anlamlı adlar kullanmayı unutmayın.

    • Yetkilendirme düzeyi metin kutusunda, varsayılan İşlev değerini kabul edin. Yetkilendirme düzeyi, isteğin çalışması için istekte hangi anahtarların bulunması gerektiğini belirler. İşlev yetkilendirme düzeyi, oluşturulduktan sonra bulabileceğimiz işleve özgü bir anahtar gerektirir.

  5. Oluştur'u belirleyin. Tetikleyici işlevi işlev uygulamanıza yayıldığında İşlev Uygulamanızın İşlevler bölmesi görüntülenir ve HttpTrigger1 listelenir.

  6. Komut çubuğunda İşlev Url'sini Al'ı seçin. İşlev Url'sini Al iletişim kutusu görüntülenir.

  7. Açılan listede varsayılan (işlev tuşu)'nı seçin, URL'nin sonundaki Panoya kopyala simgesini seçin ve ardından iletişim kutusunu kapatmak için Tamam'ı seçin.

  8. Yeni bir tarayıcı sekmesinin adres çubuğuna kopyaladığınız işlev URL'sini yapıştırın. İsteği tarayıcınızda çalıştırmak için Enter tuşuna basın. İşlev uygulaması başlatılırken yanıt birkaç dakika sürebilir. Zaman aşımı hatası alırsanız isteği yeniden göndermek için yenileyin.

    İşlev yanıtladığında, tarayıcınızda aşağıdaki örneğe benzer bir çıktı görmeniz gerekir.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. URL'nin sonuna aşağıdaki sorgu dizesini &name=Joe ekleyin. Elde edilen URL'niz aşağıdaki örneğe benzemelidir:

    https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe

  10. İsteği tarayıcınızda çalıştırmak için Enter tuşuna basın. İşlev yanıtladığında, tarayıcınızda aşağıdaki örneğe benzer bir çıktı görmeniz gerekir.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Şu ana kadar bu alıştırmada görebileceğiniz gibi, bir işlev oluştururken bir tetikleyici tanımlamanız gerekir. Her işlevin tek bir tetikleyicisi vardır. Bu örnekte HTTP tetikleyici kullanıyoruz ve işlevimiz bir HTTP isteği aldığında çalışıyor. Aşağıdaki ekran görüntüsünde JavaScript'te gösterilen şablondaki varsayılan uygulama, isteğin sorgu dizesinde veya gövdesinde bulunan parametre adının değerini döndürür. Hiçbir sorgu dizesi sağlanmadıysa işlev, çağırandan bir ad değeri sağlamasını isteyen bir iletiyle yanıt verir.

    HTTP isteği ve yanıt bağlama parametrelerini gösteren varsayılan HTTP tetikleyicisinin çizimi.

  11. Azure portalının İşlev menüsünde Kod + Test'i seçin.

    İşlevinizin Kod + Test bölmesi görüntülenir ve index.js dosyanızın içeriğini görüntüler. İşlevinizin varsayılan JavaScript kodu aşağıdaki örneğe benzer olmalıdır.

    module.exports = async function (context, req) {
        context.log('JavaScript HTTP trigger function processed a request.');
    
        const name = (req.query.name || (req.body && req.body.name));
        const responseMessage = name
            ? "Hello, " + name + ". This HTTP triggered function executed successfully."
            : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
    
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: responseMessage
        };
    }
    
  12. Şimdi function.json yapılandırma dosyasındaki işleve kısaca göz atalım. Kod bloğunun üzerindeki dosya yolundaki açılan listeden function.json seçerek bu dosyaya erişin. Yapılandırma verileri aşağıdaki JSON listesinde gösterilmiştir.

    {
        "bindings": [
        {
            "authLevel": "function",
            "type": "httpTrigger",
            "direction": "in",
            "name": "req",
            "methods": [
            "get",
            "post"
            ]
        },
        {
            "type": "http",
            "direction": "out",
            "name": "res"
        }
      ]
    }
    

    Bu işlevin türünde req adlı bir tetikleyici bağlaması ve türünde httpTriggerres adlı bir çıkış bağlaması vardırhttp.

İşlevimizin önceki kodunda req parametresi aracılığıyla gelen HTTP isteğinin yüküne erişildiğini gördük. Benzer şekilde, res parametremizi ayarlayarak bir HTTP yanıtı gönderdik . Bağlamalar işin zahmetli kısmını bizim yerimize halleder!

Artık bir işlev uygulamamız olduğuna göre bir işlev oluşturalım. Her işlev bir tetikleyici tarafından etkinleştirilir. Bu modülde şablon kullanarak bir HTTP tetikleyicisi oluşturacağız.

  1. Genel Bakış sayfasındaki İşlevler sekmesindeki Azure portalındaoluştur'un altında İşlev oluştur düğmesini seçin.

  2. İşlev oluştur bölmesi görüntülenir.

  3. Şablon seçin bölümünde HTTP tetikleyici şablonunu ve ardından İleri'yi seçin.

  4. Şablon ayrıntıları bölümünde aşağıdaki ayarları onaylayın.

    • İşlev adı metin kutusunda HttpTrigger1 varsayılan adını kabul edin. İşlev oluşturduğunuzda Azure otomatik olarak benzersiz bir ad sağlar. Farklı bir ad seçebilirsiniz, ancak anlamlı adlar kullanmayı unutmayın.

    • Yetkilendirme düzeyi metin kutusunda, varsayılan İşlev değerini kabul edin. Yetkilendirme düzeyi, isteğin çalışması için istekte hangi anahtarların bulunması gerektiğini belirler. İşlev , işleve özgü bir anahtar gerektirir.

      İşlev Ekle bölmesinin ekran görüntüsü.

  5. Oluştur'u belirleyin. İşlevinizin HttpTrigger1 bölmesi görüntülenir.

  6. Komut çubuğunda İşlev Url'sini Al'ı seçin. İşlev Url'sini Al iletişim kutusu görüntülenir.

  7. Açılan listeden varsayılan (işlev tuşu) öğesini seçin, URL'nin sonundaki Panoya kopyala simgesini seçin ve ardından iletişim kutusunu kapatmak için Tamam'ı seçin.

  8. Yeni bir tarayıcı sekmesinin adres çubuğuna kopyaladığınız işlev URL'sini yapıştırın. İsteği tarayıcınızda çalıştırmak için Enter tuşuna basın. İşlev uygulaması başlatılırken yanıt birkaç dakika sürebilir. Zaman aşımı hatası alırsanız isteği yeniden göndermek için yenileyin.

    İşlev yanıtladığında, tarayıcınızda aşağıdaki örneğe benzer bir çıktı görmeniz gerekir.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. URL'nin sonuna sorgu dizesi &name=Joe ekleyin. Elde edilen URL'niz aşağıdaki örneğe benzemelidir:

    https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe

  10. İsteği tarayıcınızda çalıştırmak için Enter tuşuna basın. İşlev yanıtladığında, tarayıcınızda aşağıdaki örneğe benzer bir çıktı görmeniz gerekir.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Şu ana kadar bu alıştırmada görebileceğiniz gibi, bir işlev oluştururken bir tetikleyici tanımlamanız gerekir. Her işlevin tek bir tetikleyicisi vardır. Bu örnekte HTTP tetikleyici kullanıyoruz ve işlevimiz bir HTTP isteği aldığında çalışıyor. Aşağıdaki ekran görüntüsünde PowerShell'de gösterilen şablondaki varsayılan uygulama, Push-OutputBinding cmdlet'ini kullanarak isteğin sorgu dizesinin veya gövdesinin parçası olan parametre adının değeriyle yanıt verir. İşlev, dize sağlanmazsa çağrıyı yapandan bir ad değeri sağlamasını isteyerek yanıt verir.

    Yanıt ve ilgili bağlama parametrelerini gösteren HTTP isteği için kod ve Test bölmesi.

  11. İşlev menüsünde Kod + Test'i seçin. İşlevinizin Kod + Test bölmesi görüntülenir ve run.ps1 dosyanızın içeriğini görüntüler.

    İşlevinizin varsayılan PowerShell kodu aşağıdaki örneğe benzemelidir.

    using namespace System.Net
    
    # Input bindings are passed in via param block.
    param($Request, $TriggerMetadata)
    
    # Write to the Azure Functions log stream.
    Write-Host "PowerShell HTTP trigger function processed a request."
    
    # Interact with query parameters or the body of the request.
    $name = $Request.Query.Name
    if (-not $name) {
        $name = $Request.Body.Name
    }
    
    $body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
    
    if ($name) {
        $body = "Hello, $name. This HTTP triggered function executed successfully."
    }
    
    # Associate values to output bindings by calling 'Push-OutputBinding'.
    Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body = $body
    })
    
  12. Şimdi function.json yapılandırma dosyasındaki işleve kısaca göz atalım. Dosya yolu açılan listesinden function.json seçerek bu dosyayı açın. Yapılandırma verileri aşağıdaki JSON listesinde gösterilmiştir.

    {
      "bindings": [
        {
          "authLevel": "function",
          "type": "httpTrigger",
          "direction": "in",
          "name": "Request",
          "methods": [
            "get",
            "post"
          ]
        },
        {
          "type": "http",
          "direction": "out",
          "name": "Response"
        }
      ]
    }
    

    Gördüğünüz gibi bu işlevin httpTrigger türünde Request adlı bir tetikleyici bağlaması ve http türünde Response adlı bir çıkış bağlaması vardır. İşlevimizin önceki kodunda Request parametresi aracılığıyla gelen HTTP isteğinin yüküne nasıl erişmiş olduğumuzu gördük. Benzer şekilde, yalnızca Response parametresini ayarlayarak bir HTTP yanıtı gönderdik. Bağlamalar işin zahmetli kısmını bizim yerimize halleder.

Bağlama türlerini keşfedin

  1. İşlev menüsünde Tümleştirme'yi seçin. İşlevinizin Tümleştirme bölmesi görüntülenir.

    Aşağıdaki görüntüde gösterildiği gibi bir tetikleyici ve çıkış bağlaması tanımladığımıza dikkat edin. Tümleştirme görünümü, ekranınızın genişliğine ve yüksekliğine en uygun şekilde ayarlanır. Ekranınız yeterince genişse aynı bilgiler yatay olarak görüntülenebilir.

    İşlev ve İşlev'e giden Tetikleyici ve Girişlerin Çıkışlara yol gösterdiğini gösteren dikey akış diyagramının ekran görüntüsü.

    Birden fazla tetikleyici ekleyemediğimizi de görebilirsiniz. bir işlevin tetikleyicisini değiştirmek için tetikleyiciyi silmeniz ve yeni bir tetikleyici oluşturmanız gerekir. Ancak, Girişler ve Çıkışlar bölümleri birden fazla bağlama eklemenize olanak tanır, böylece istek birden fazla giriş değeri kabul edebilir ve birden fazla çıkış değeri döndürebilir.

  2. Girişler kutusunda Giriş ekle'yi seçin. Giriş Oluştur bölmesi görüntülenir. Tüm olası giriş bağlama türlerinin listesini görüntülemek için Bağlama Türü açılan listesini seçin.

    Giriş ekle seçeneklerinin ekran görüntüsü.

    Bir çözümde bu giriş bağlamalarının her birini nasıl kullanabileceğinizi düşünmek için bir dakikanızı ayırın.

    Bu modülün ilerleyen bölümlerinde giriş bağlamaları ekleyeceğiz, ancak şimdilik bu bölmeyi kapatmak için İptal'i seçin.

  3. Çıkışlar kutusunda Çıkış ekle'yi seçin. Çıkış Oluştur bölmesi görüntülenir. Tüm olası çıkış bağlama türlerinin listesini görüntülemek için Bağlama Türü açılan listesini seçin.

    Çıkış ekle seçeneklerinin ekran görüntüsü.

    Gördüğünüz gibi birkaç çıkış bağlaması türü vardır. Bu modülün ilerleyen bölümlerinde çıkış bağlamaları ekleyeceğiz ancak şimdilik İptal'i seçerek bu bölmeyi kapatacağız.

  1. İşlev menüsünde Tümleştirme'yi seçin. İşlevinizin Tümleştirme bölmesi görüntülenir.

    Aşağıdaki görüntüde gösterildiği gibi bir tetikleyici ve çıkış bağlaması tanımladığımıza dikkat edin. Tümleştirme görünümü, ekranınızın genişliğine ve yüksekliğine en uygun şekilde ayarlanır. Ekranınız yeterince geniş değilse aynı bilgiler dikey olarak görüntülenebilir.

    İşlev ve İşlev'e giden Tetikleyici ve Girişlerin Çıkışlara yol gösterdiğini gösteren yatay akış diyagramının ekran görüntüsü.

    Birden fazla tetikleyici ekleyemediğimizi de görebilirsiniz. Bir işlevin tetikleyicisini değiştirmek için tetikleyiciyi silmeniz ve yeni bir tane oluşturmanız gerekir. Ancak, Girişler ve Çıkışlar bölümleri birden çok bağlama eklemenize olanak tanır, böylece işlev birden fazla giriş değeri kabul edebilir ve birden fazla çıkış değeri döndürebilir.

  2. Girişler kutusunda Giriş ekle'yi seçin. Giriş Oluştur bölmesi görüntülenir. Tüm olası giriş bağlama türlerinin listesini görüntülemek için Bağlama Türü açılan listesini seçin.

    Giriş ekle seçeneklerinin ekran görüntüsü.

    Bir çözümde bu giriş bağlamalarının her birini nasıl kullanabileceğinizi düşünmek için bir dakikanızı ayırın. Aralarından seçim yapabileceğiniz birçok seçenek vardır.

    Bu modülün ilerleyen bölümlerinde giriş bağlamaları ekleyeceğiz, ancak şimdilik bu bölmeyi kapatmak için İptal'i seçin.

  3. Çıkışlar kutusunda Çıkış ekle'yi seçin. Çıkış Oluştur bölmesi görüntülenir. Tüm olası çıkış bağlama türlerinin listesini görüntülemek için Bağlama Türü açılan listesini seçin.

    Çıkış ekle seçeneklerinin ekran görüntüsü.

    Gördüğünüz gibi birkaç çıkış bağlaması türü vardır. Bu modülün ilerleyen bölümlerinde çıkış bağlamaları ekleyeceğiz ancak şimdilik İptal'i seçerek bu bölmeyi kapatacağız.

Buraya kadar işlev uygulaması oluşturmayı ve işlev eklemeyi öğrendik. Http isteği yapıldığında çalışan basit bir işlevin çalıştığını gördük. Ayrıca Azure portalını ve işlevler için kullanılabilen giriş ve çıkış bağlamalarının türlerini inceledik. Bir sonraki ünitede giriş bağlaması kullanarak bir veritabanından metin okuyacağız.