Aracılığıyla paylaş


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.

Postman aşağıdaki örnekte kullanılır, ancak HTTP istekleri göndermek için cURL, Fiddler veya benzeri herhangi bir aracı kullanabilirsiniz.

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.

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

Define the request location: host name + folder path + function name

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

    Locate the master key to copy.

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

    Copy the master key to the clipboard.

İş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 Postman'den el ile çalıştırdığınızda işlevden gelen iletileri burada günlüğe kaydedersiniz.

    Screenshot that shows the 'Code + Test' page with a message from the logs displayed.

  3. Postman'i (veya eşdeğer bir HTTP oluşturma aracını) açın ve URL metin kutusuna istek konumunu girin.

  4. HTTP yönteminin POST olarak ayarlandığından emin olun, Üst Bilgiler sekmesini seçin ve şu iki üst bilgi anahtar-değer çiftini ekleyin:

    Anahtar Değer
    x-functions-key Panodan yapıştırılan ana anahtar değeri.
    Content-Type application/json

    Postman headers settings.

  5. Gövde sekmesini seçin ve isteğin gövdesi olarak yazın{ "input": "<TRIGGER_INPUT>" }.

    Postman body settings.

    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.

  6. Gönder'i seçin.

    Send a request with Postman.

    Postman daha sonra 202 Kabul Edildi durumunu bildirir.

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

    View the logs to see the master key test results.

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