HTTP ile tetiklenmeyen bir işlevi el ile çalıştırma

Bu makalede, özel olarak biçimlendirilmiş HTTP isteği aracılığıyla HTTP ile tetiklenmeyen bir işlevin el ile nasıl çalıştırıldığı gösterilmektedir.

Geliştirme ve sorun giderme gibi bazı bağlamlarda dolaylı olarak tetiklenen bir Azure İşlevini "isteğe bağlı" çalıştırmanız gerekebilir. Dolaylı tetikleyicilere örnek olarak bir zamanlamadaki işlevler veya olayların sonucu olarak çalışan işlevler verilebilir.

Bu makalede açıklanan yordam, Azure portalında bir işlevin Kod + Test sekmesinin Test/Çalıştırma işlevinin kullanılmasıyla eşdeğerdir. İşlevleri el ile çalıştırmak için Visual Studio Code'u da kullanabilirsiniz.

Önkoşullar

Bu makaledeki örneklerde HTTP test aracı kullanılır. Verilerinizin güvenliğini sağlayan bir araç seçtiğinizden emin olun. Daha fazla bilgi için bkz . HTTP test araçları.

İstek konumunu tanımlama

HTTP ile tetiklenmeyen bir işlevi çalıştırmak için Azure'a işlevi çalıştırma isteği göndermek için bir yol gerekir. Bu isteği yapmak için kullanılan URL belirli bir form alır.

İstek konumunu tanımlayın: konak adı + klasör yolu + işlev adı

  • Ana bilgisayar adı: İşlev uygulamasının, işlev uygulamasının adından ve azurewebsites.net veya özel etki alanınızdan oluşturulan genel konumu. Hazırlama için kullanılan dağıtım yuvalarıyla çalışırken, ana bilgisayar adı bölümü, sonuna eklenmiş üretim ana bilgisayar adıdır-<slotname>. Önceki örnekte URL, adlı stagingbir yuvaya yöneliktimyfunctiondemos-staging.azurewebsites.net.
  • Klasör yolu: HTTP ile tetiklenmeyen işlevlere bir HTTP isteği aracılığıyla erişmek için, isteği yolu admin/functionsüzerinden göndermeniz gerekir. Yolun altındaki API'lere /admin/ yalnızca yetkilendirme ile erişilebilir.
  • İşlev adı: Çalıştırmak istediğiniz işlevin adı.

İşlev uygulamanızda yönetici uç noktalarına istekte bulunurken aşağıdaki noktalar geçerlidir:

  • Yolun altındaki /admin/ herhangi bir uç noktaya istekte bulunurken, isteğin üst bilgisinde uygulamanızın x-functions-key ana anahtarını sağlamanız gerekir.
  • Yerel olarak çalıştırdığınızda yetkilendirme zorunlu tutulmaz ve işlevin ana anahtarı gerekli değildir. Üst bilgiyi atarak x-functions-key işlevi doğrudan çağırabilirsiniz.
  • Dağıtım yuvasında işlev uygulaması uç noktalarına erişirken, yuvaya özgü ana anahtarla birlikte istek URL'sindeki yuvaya özgü ana bilgisayar adını kullandığınızdan emin olun.

Ana anahtarı alma

Ana anahtarı Azure portalından veya Azure CLI kullanarak alabilirsiniz.

Dikkat

İşlev uygulamanızda ana anahtar tarafından verilen yükseltilmiş izinler nedeniyle, bu anahtarı üçüncü taraflarla paylaşmamalı veya bir uygulamada dağıtmamalısınız. Anahtar yalnızca bir HTTPS uç noktasına gönderilmelidir.

  1. Azure portalında işlev uygulamanıza gidin, Uygulama Anahtarları'nı _masterve ardından anahtarı seçin.

    Kopyalanacak ana anahtarı bulun.

  2. Anahtarı düzenle bölümünde, anahtar değerini panonuza kopyalayın ve tamam'ı seçin.

    Ana anahtarı panoya kopyalayın.

İşlevi çağırma

  1. Azure portalında işlev uygulamanızın en üstüne gidin ve işlevinizi seçin.

  2. Kod + Test'i ve ardından Günlükler'i seçin. İşlevi HTTP test aracınızdan el ile çalıştırdığınızda burada günlüğe kaydedilen işlev iletilerini görürsünüz.

    Günlüklerden bir iletinin görüntülendiği 'Kod + Test' sayfasını gösteren ekran görüntüsü.

  3. HTTP test aracınızda, istek URL'si olarak tanımladığınız istek konumunu kullanın, HTTP istek yönteminin POST olduğundan emin olun ve şu iki istek üst bilgisini ekleyin:

    Anahtar Değer
    x-functions-key Panodan yapıştırılan ana anahtar değeri.
    Content-Type application/json
  4. POST isteği yükünün/gövdesinin olduğundan { "input": "<TRIGGER_INPUT>" }emin olun. Sağladığınız belirli <TRIGGER_INPUT> tetikleyici türüne bağlıdır, ancak yalnızca dize, sayısal veya boole değeri olabilir. Azure Service Bus gibi JSON yüklerini kullanan hizmetler için test JSON yükünden kaçış ve dize olarak seri hale getirilmelidir.

    giriş verilerini işleve geçirmek istemiyorsanız, POST isteğinin gövdesi olarak boş bir sözlük {} sağlamanız gerekir. Daha fazla bilgi için, belirli BIR HTTP olmayan tetikleyici için başvuru makalesine bakın.

  5. HTTP POST isteğini gönderin. Yanıt bir HTTP 202 (Kabul Edildi) yanıtı olmalıdır.

  6. Ardından, Azure portalında işlevinize dönün. Günlükleri gözden geçirin ve işleve el ile yapılan çağrıdan gelen iletileri görürsünüz.

    Ana anahtar test sonuçlarını görmek için günlükleri görüntüleyin.

Tetikleyiciye gönderilen verilere erişme şekliniz tetikleyicinin türüne ve işlev dilinize bağlıdır. Daha fazla bilgi için, belirli tetikleyiciniz için başvuru örneklerine bakın.

Sonraki adımlar