Yazılım Mimarileri ve Tasarım Desenleri Üzerine

Azure Functions Serisi #9 – Http Trigger

Merhaba,

Bu içeriğimizde Azure Function trigger türlerinden ilki ve en çok kullanılanı olan Http Trigger üzerine detaylıca konuşuyor olacağız.

Http Trigger Nedir?

Http Trigger, tarafımıza verdiği endpointler aracılığıyla tetiklenebilir bir fonksiyon çeşididir.

Bir önceki Azure Function Dosya Yapısı makalemizden örnek Http Trigger endpoint görseli…

Http Trigger Yapısı Nasıldır?

Http Trigger yapısal olarak; Route, Query String ve Request Body yapılanmasından meydana gelmektedir. Bu kavramların izahatlerini yapabilmek için aşağıdaki function’ı ele alalım;
Not! Bu içeriği anlamlandırabilmek için bir Azure Function uygulamasının nasıl oluşturulduğunu bilmeniz gerekmektedir. Bunun için yazı dizisindeki önceden kaleme alınmış ilgili makalelerden istifade edebilirsiniz.

    public static class MyFunction
    {
        [FunctionName("MyFunction")]
        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            string name = req.Query["name"];

            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            dynamic data = JsonConvert.DeserializeObject(requestBody);

            return new OkObjectResult(data);
        }
    }

Http Trigger CORS Ayarlaması

Bir endpoint’i tüketecek kaynak eğer ki bir tarayıcı ise CORS özelliğini ayarlamamız gerekmektedir. Bknz : Asp.NET Core Uygulamalarında CORS(Cross-Origin-Resource-Sharing) Politikası Ayarlama

CORS; bir güvenlik değil, tarayıcılar için var olan güvenliği gevşetme yöntemidir.

Azure Function CORS politikalarını ayarlayabilmek için ‘local.setting.json’ dosyasına aşağıdaki ifadeyi eklemeniz gerekmektedir.

  "Host": {
    "CORS": "*"
  }

Dosyanın tam hali;

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  },
  "Host": {
    "CORS": "*"
  }
}

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Mobil sürümden çık