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.

Screenshot of Code and Test pane showing default code for HTTP trigger function template.

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.

Screenshot of Code and Test pane showing default code for HTTP trigger function template.

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. Oluştur'u 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 Tanım
    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 -.
    Kod veya kapsayıcı görüntüsü dağıtmak istiyor musunuz? Kod Kod dosyalarını veya Docker kapsayıcısını yayımlama seçeneği.
    Çalışma zamanı yığını Açılan listeden Node.js'yi 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.
    Region 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 ardından İşlev Uygulaması'nı arayıp seçin. Arama hizmeti ve market penceresinde İşlev Uygulaması'nıaramanız gerekebilir.

  4. Oluştur'u 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 Tanım
    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 -.
    Kod veya kapsayıcı görüntüsü dağıtmak istiyor musunuz? Kod Kod dosyalarını veya Docker kapsayıcısını yayımlama seçeneği.
    Ç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.
    Region 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.

Bahşiş

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 sekmesinde Azure portalında oluştur düğmesini seçin.

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

    Screenshot for the Create Function pane.

  3. Şablon seçin bölümünde HTTP tetikleyici şablonunu seçin.

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

    • Yeni İşlev 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 seçeneğini 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.

    Illustration of default HTTP trigger, showing HTTP request and response binding parameters.

  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 işlevin diğer dosyasına kısaca göz atalım: function.json yapılandırma dosyası. Kod bloğunun üzerindeki dosya yolundaki açılan listeden function.json dosyasını 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 sekmesinde Azure portalında 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 seçin.

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

    • Yeni İşlev 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.

      Screenshot for the Add Function pane.

  5. Oluştur seçeneğini 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.

    Code and Test pane for HTTP request showing response and respective binding parameters.

  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 dosyasını 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.

    Screenshot of vertical flow diagram showing Trigger and Inputs leading to Function and Function leading to Outputs.

    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.

    Screenshot of the Add input options.

    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.

    Screenshot of the Add output options.

    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.

    Screenshot of horizontal flow diagram showing Trigger and Inputs leading to Function and Function leading to Outputs.

    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.

    Screenshot of the Add input options.

    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.

    Screenshot of the Add output options.

    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.